diff options
| -rw-r--r-- | engines/mortevielle/actions.h | 2371 | ||||
| -rw-r--r-- | engines/mortevielle/alert.h | 401 | ||||
| -rw-r--r-- | engines/mortevielle/boite.h | 57 | ||||
| -rw-r--r-- | engines/mortevielle/disk.h | 124 | ||||
| -rw-r--r-- | engines/mortevielle/droite.h | 67 | ||||
| -rw-r--r-- | engines/mortevielle/keyboard.h | 107 | ||||
| -rw-r--r-- | engines/mortevielle/level15.h | 271 | ||||
| -rw-r--r-- | engines/mortevielle/menu.h | 594 | ||||
| -rw-r--r-- | engines/mortevielle/mor.h | 2690 | ||||
| -rw-r--r-- | engines/mortevielle/mor2.h | 1376 | ||||
| -rw-r--r-- | engines/mortevielle/mort.cpp | 175 | ||||
| -rw-r--r-- | engines/mortevielle/mouse.h | 846 | ||||
| -rw-r--r-- | engines/mortevielle/outtext.h | 409 | ||||
| -rw-r--r-- | engines/mortevielle/ovd1.h | 628 | ||||
| -rw-r--r-- | engines/mortevielle/parole.h | 736 | ||||
| -rw-r--r-- | engines/mortevielle/parole2.h | 168 | ||||
| -rw-r--r-- | engines/mortevielle/prog.h | 595 | ||||
| -rw-r--r-- | engines/mortevielle/ques.h | 220 | ||||
| -rw-r--r-- | engines/mortevielle/sprint.h | 91 | ||||
| -rw-r--r-- | engines/mortevielle/taffich.h | 366 | ||||
| -rw-r--r-- | engines/mortevielle/var_mor.h | 591 | 
21 files changed, 6210 insertions, 6673 deletions
diff --git a/engines/mortevielle/actions.h b/engines/mortevielle/actions.h index fd4ae2e0b6..1dd3abe08f 100644 --- a/engines/mortevielle/actions.h +++ b/engines/mortevielle/actions.h @@ -1,1372 +1,1193 @@  /* NIVEAU 4 */  const char stouinon[] = "[2][ ][OUI][NON]"; -/* overlay */ void taller() +/* overlay */ +void taller()  { - integer mx,cx,cy; +	integer mx, cx, cy; - if ((s.mlieu== 26) && (msg[4]== depl[6]))  - { -  s.mlieu= 15; -  caff= s.mlieu; -  afdes(0); -  repon(2,s.mlieu); - } - if ((s.mlieu== 15) && (msg[4]== depl[6]))  - { -  if (! syn)  ecr3("aller"); -  tfleche(); -  if (iesc)  okdes= false; -  if ((anyone) || (iesc))  return; -  tcoord(1); -  if (num== 0)  return; -  if (num== 1)  -  { -   s.mlieu= 0; -   tmlieu(0); -  } -  else -   if (num== 7)  -   { -    s.mlieu= 13; -    tmlieu(13); -   } -   else -    if (num!= 6)  s.mlieu= 26; -  if ((num> 1) && (num< 6))  ment= num- 1; -  if (num> 7)  ment= num- 3; -  if (num!= 6)  affrep(); else aldepl(); -  return; - } - tsort(); - cx= 0; - do { -  cx= cx+ 1; - } while (!(depl[cx]== msg[4])); - if (s.mlieu== 19)  - { -  if (cx== 1)  t1deva(); -  if (cx== 2)  t1neig(); -  goto L2; - } - if (s.mlieu== 23)  - { -  if (cx== 1)  t1deau(); -  if (cx== 2)  t1derr(); -  goto L2; - } - if ((s.mlieu== 11) && (cx== 1))  cx= 6; - if (s.mlieu== 12)  - { -  if (cx== 2)  cx= 6; -  if (cx== 5)  cx= 16; - } - if ((s.mlieu== 14) && (cx== 3))  cx= 6; - if (((s.mlieu== 15) || (s.mlieu== 26)) && (cx== 4))  cx= 6; - if ((s.mlieu> 19) && (s.mlieu!= 26))  cx= cx+ 10; - if ((s.mlieu== 20) && (cx== 13))  cx= 16; - if (s.mlieu== 21)  - { -  if (cx== 12)  cx= 16; else -  if (cx> 13)  cx= 15; - } - if ((s.mlieu== 22) && (cx> 14))  cx= 15; - if ((s.mlieu== 24) && (cx!= 17))  -  if (cx> 13)  cx= 15; - if (cx== 1)  s.mlieu= 11; else - if (cx== 2)  s.mlieu= 12; else - if (cx== 3)  s.mlieu= 14; else - if (cx== 4)  s.mlieu= 15; else - if (cx== 5)  cx= 12; - if (cx== 6)  cx= 11; - if (cx== 11)  t1sama(); else - if (cx== 12)  t1deva(); else - if (cx== 13)  s.mlieu= 20; else - if (cx== 14)  s.mlieu= 24; else - if (cx== 15)  t1neig(); else - if (cx== 16)  t1derr(); else - if (cx== 17)  - { -  if ((s.ipuit!= 120) && (s.ipuit!= 140))  crep= 997; else -   if (s.ipuit== 120)  crep= 181; else -    if (s.conf> 80)  -    { -     crep= 1505; -     tperd(); -    } -    else -    { -     s.mlieu= 23; -     affrep(); -    } - } - if ((cx< 5) || (cx== 13) || (cx== 14))  affrep(); - debloc(s.mlieu); +	if ((s.mlieu == 26) && (msg[4] == depl[6])) { +		s.mlieu = 15; +		caff = s.mlieu; +		afdes(0); +		repon(2, s.mlieu); +	} +	if ((s.mlieu == 15) && (msg[4] == depl[6])) { +		if (! syn)  ecr3("aller"); +		tfleche(); +		if (iesc)  okdes = false; +		if ((anyone) || (iesc))  return; +		tcoord(1); +		if (num == 0)  return; +		if (num == 1) { +			s.mlieu = 0; +			tmlieu(0); +		} else if (num == 7) { +			s.mlieu = 13; +			tmlieu(13); +		} else if (num != 6)  s.mlieu = 26; +		if ((num > 1) && (num < 6))  ment = num - 1; +		if (num > 7)  ment = num - 3; +		if (num != 6)  affrep(); +		else aldepl(); +		return; +	} +	tsort(); +	cx = 0; +	do { +		cx = cx + 1; +	} while (!(depl[cx] == msg[4])); +	if (s.mlieu == 19) { +		if (cx == 1)  t1deva(); +		if (cx == 2)  t1neig(); +		goto L2; +	} +	if (s.mlieu == 23) { +		if (cx == 1)  t1deau(); +		if (cx == 2)  t1derr(); +		goto L2; +	} +	if ((s.mlieu == 11) && (cx == 1))  cx = 6; +	if (s.mlieu == 12) { +		if (cx == 2)  cx = 6; +		if (cx == 5)  cx = 16; +	} +	if ((s.mlieu == 14) && (cx == 3))  cx = 6; +	if (((s.mlieu == 15) || (s.mlieu == 26)) && (cx == 4))  cx = 6; +	if ((s.mlieu > 19) && (s.mlieu != 26))  cx = cx + 10; +	if ((s.mlieu == 20) && (cx == 13))  cx = 16; +	if (s.mlieu == 21) { +		if (cx == 12)  cx = 16; +		else if (cx > 13)  cx = 15; +	} +	if ((s.mlieu == 22) && (cx > 14))  cx = 15; +	if ((s.mlieu == 24) && (cx != 17)) +		if (cx > 13)  cx = 15; +	if (cx == 1)  s.mlieu = 11; +	else if (cx == 2)  s.mlieu = 12; +	else if (cx == 3)  s.mlieu = 14; +	else if (cx == 4)  s.mlieu = 15; +	else if (cx == 5)  cx = 12; +	if (cx == 6)  cx = 11; +	if (cx == 11)  t1sama(); +	else if (cx == 12)  t1deva(); +	else if (cx == 13)  s.mlieu = 20; +	else if (cx == 14)  s.mlieu = 24; +	else if (cx == 15)  t1neig(); +	else if (cx == 16)  t1derr(); +	else if (cx == 17) { +		if ((s.ipuit != 120) && (s.ipuit != 140))  crep = 997; +		else if (s.ipuit == 120)  crep = 181; +		else if (s.conf > 80) { +			crep = 1505; +			tperd(); +		} else { +			s.mlieu = 23; +			affrep(); +		} +	} +	if ((cx < 5) || (cx == 13) || (cx == 14))  affrep(); +	debloc(s.mlieu);  L2: - tmlieu(s.mlieu); +	tmlieu(s.mlieu);  } -/* overlay */ void tprendre() -{ - integer cx, cy, cz; +/* overlay */ void tprendre() { +	integer cx, cy, cz; - if (caff> 99)  - { -  cx= caff; -  avpoing(cx); -  if (crep!= 139)  -  { -   if (ipers> 0)  s.conf= s.conf+ 3; -   if (obpart)  -   { -    if (s.mlieu== 2)  s.iloic= 0; -    if (s.mlieu== 13)  -    { -     if (s.iboul== caff)  s.iboul= 0; -     if (s.ibag== caff)  s.ibag= 0; -    } -    if (s.mlieu== 14)  s.icave= 0; -    if (s.mlieu== 16)  s.icryp= 0; -    if (s.mlieu== 17)  s.ivier= 0; -    if (s.mlieu== 24)  s.ipuit= 0; -    mfouen(); -    obpart= false; -    affrep(); -   } -   else -   { -    tabdon[acha+ (pred(integer,mchai)* 10)+ pred(integer,cs)]=0; -    tsuiv(); -    dobj= dobj+ 1; -    if (dobj> 6)  -    { -     s.conf= s.conf+ 2; -     dobj= 0; -    } -   } -  } -  return; - } - if (! syn)  ecr3("prendre"); - tfleche(); - if ((anyone) || (iesc))  return; - if (caff== 3)  - { -  tcoord(2); -  if (num== 1)  -  { -   crep= 152; -   return; -  } - } - tcoord(5); - if ((num== 0) || ((num== 1) && (s.mlieu== 16)))  - { -  tcoord(8); -  if (num!= 0)  -  { -   if (ipers> 0)  s.conf= s.conf+ 3; -   crep= 997; -   if ((s.mlieu== 2) && (s.iloic!= 0))  avpoing(s.iloic); -   if ((s.mlieu==13) && (num==1) && (s.iboul!=0))  -   { -    avpoing(s.iboul); -    if ((crep!= 997) && (crep!= 139))  aniof(2,7); -   } -   if ((s.mlieu==13) && (num==2) && (s.ibag!=0))  -   { -    avpoing(s.ibag); -    if ((crep!= 997) && (crep!= 139))  aniof(2,6); -   } -   if ((s.mlieu== 14) && (s.icave!= 0))  -   { -    avpoing(s.icave); -    if ((crep!= 997) && (crep!= 139))  aniof(2,2); -   } -   if ((s.mlieu== 16) && (s.icryp!= 0))  avpoing(s.icryp); -   if ((s.mlieu== 17) && (s.ivier!= 0))  -   { -    avpoing(s.ivier); -    if ((crep!= 997) && (crep!= 139))  -    { -     crep= 182; -     aniof(2,1); -    } -   } -   if ((s.mlieu== 24) && (s.ipuit!= 0))  -   { -    avpoing(s.ipuit); -    if ((crep!= 997) && (crep!= 139))  aniof(2,1); -   } -   if ((crep!= 997) && (crep!= 182) && (crep!= 139))  crep= 999; -  } - } - else - { -  if (((s.mlieu== 0) && (num== 3)) || ((s.mlieu== 1) && (num== 4)) -  || ((s.mlieu== 2) && (num== 1)) || ((s.mlieu== 4) && (num== 3)) -  || ((s.mlieu== 5) && (num== 6)) || ((s.mlieu== 6) && (num== 2)) -  || ((s.mlieu== 7) && (num== 6)) || ((s.mlieu== 8) && (num== 4)) -  || ((s.mlieu== 9) && (num== 4)) || ((s.mlieu== 10) && (num> 2)) -  || ((s.mlieu== 11) && (num== 7)) || ((s.mlieu== 12) && (num== 6)) -  || ((s.mlieu== 13) && (num> 4)) || ((s.mlieu> 13) -  && (s.mlieu!= 23)))  crep= 997; else -  { -   if (s.mlieu== 23)  -   { -    crep= 1504; -    tperd(); -   } -   else crep= 120; -  } - } +	if (caff > 99) { +		cx = caff; +		avpoing(cx); +		if (crep != 139) { +			if (ipers > 0)  s.conf = s.conf + 3; +			if (obpart) { +				if (s.mlieu == 2)  s.iloic = 0; +				if (s.mlieu == 13) { +					if (s.iboul == caff)  s.iboul = 0; +					if (s.ibag == caff)  s.ibag = 0; +				} +				if (s.mlieu == 14)  s.icave = 0; +				if (s.mlieu == 16)  s.icryp = 0; +				if (s.mlieu == 17)  s.ivier = 0; +				if (s.mlieu == 24)  s.ipuit = 0; +				mfouen(); +				obpart = false; +				affrep(); +			} else { +				tabdon[acha + (pred(integer, mchai) * 10) + pred(integer, cs)] = 0; +				tsuiv(); +				dobj = dobj + 1; +				if (dobj > 6) { +					s.conf = s.conf + 2; +					dobj = 0; +				} +			} +		} +		return; +	} +	if (! syn)  ecr3("prendre"); +	tfleche(); +	if ((anyone) || (iesc))  return; +	if (caff == 3) { +		tcoord(2); +		if (num == 1) { +			crep = 152; +			return; +		} +	} +	tcoord(5); +	if ((num == 0) || ((num == 1) && (s.mlieu == 16))) { +		tcoord(8); +		if (num != 0) { +			if (ipers > 0)  s.conf = s.conf + 3; +			crep = 997; +			if ((s.mlieu == 2) && (s.iloic != 0))  avpoing(s.iloic); +			if ((s.mlieu == 13) && (num == 1) && (s.iboul != 0)) { +				avpoing(s.iboul); +				if ((crep != 997) && (crep != 139))  aniof(2, 7); +			} +			if ((s.mlieu == 13) && (num == 2) && (s.ibag != 0)) { +				avpoing(s.ibag); +				if ((crep != 997) && (crep != 139))  aniof(2, 6); +			} +			if ((s.mlieu == 14) && (s.icave != 0)) { +				avpoing(s.icave); +				if ((crep != 997) && (crep != 139))  aniof(2, 2); +			} +			if ((s.mlieu == 16) && (s.icryp != 0))  avpoing(s.icryp); +			if ((s.mlieu == 17) && (s.ivier != 0)) { +				avpoing(s.ivier); +				if ((crep != 997) && (crep != 139)) { +					crep = 182; +					aniof(2, 1); +				} +			} +			if ((s.mlieu == 24) && (s.ipuit != 0)) { +				avpoing(s.ipuit); +				if ((crep != 997) && (crep != 139))  aniof(2, 1); +			} +			if ((crep != 997) && (crep != 182) && (crep != 139))  crep = 999; +		} +	} else { +		if (((s.mlieu == 0) && (num == 3)) || ((s.mlieu == 1) && (num == 4)) +		        || ((s.mlieu == 2) && (num == 1)) || ((s.mlieu == 4) && (num == 3)) +		        || ((s.mlieu == 5) && (num == 6)) || ((s.mlieu == 6) && (num == 2)) +		        || ((s.mlieu == 7) && (num == 6)) || ((s.mlieu == 8) && (num == 4)) +		        || ((s.mlieu == 9) && (num == 4)) || ((s.mlieu == 10) && (num > 2)) +		        || ((s.mlieu == 11) && (num == 7)) || ((s.mlieu == 12) && (num == 6)) +		        || ((s.mlieu == 13) && (num > 4)) || ((s.mlieu > 13) +		                && (s.mlieu != 23)))  crep = 997; +		else { +			if (s.mlieu == 23) { +				crep = 1504; +				tperd(); +			} else crep = 120; +		} +	}  } -/* overlay */ void tsprendre() -{ - integer cx,cy,cz; +/* overlay */ void tsprendre() { +	integer cx, cy, cz; - cx= 0; - do { -  cx= cx+ 1; - } while (!(invt[cx]== msg[4])); - cz= 0; - cy= 0; - do { -  cy= cy+ 1; -  if (ord(s.sjer[cy])!= 0)  cz= cz+ 1; - } while (!(cz== cx)); - cz= ord(s.sjer[cy]); - s.sjer[cy]= chr(0); - modinv(); - avpoing(cz); - crep= 998; - clsf2(); +	cx = 0; +	do { +		cx = cx + 1; +	} while (!(invt[cx] == msg[4])); +	cz = 0; +	cy = 0; +	do { +		cy = cy + 1; +		if (ord(s.sjer[cy]) != 0)  cz = cz + 1; +	} while (!(cz == cx)); +	cz = ord(s.sjer[cy]); +	s.sjer[cy] = chr(0); +	modinv(); +	avpoing(cz); +	crep = 998; +	clsf2();  }  /* overlay */ void tsoulever()  { - integer cx; +	integer cx; - if (! syn)  ecr3("soulever"); - tfleche(); - if ((anyone) || (iesc))  return; - tcoord(3); - if (num== 0)  - { -  tcoord(8); -  if (num!= 0)  -  { -   if (ipers> 0)  s.conf= s.conf+ 1; -   crep= 997; -   if ((s.mlieu== 2) && (s.iloic!= 0))  treg(s.iloic); -  } -  return; - } - if (ipers> 0)  s.conf= s.conf+ 1; - cx= s.mlieu; - if (s.mlieu== 16)  cx= 14; - if (s.mlieu== 19)  cx= 15; - crep= tabdon[asoul+(cx << 3)+pred(integer,num)]; - if (crep== 255)  crep= 997; +	if (! syn)  ecr3("soulever"); +	tfleche(); +	if ((anyone) || (iesc))  return; +	tcoord(3); +	if (num == 0) { +		tcoord(8); +		if (num != 0) { +			if (ipers > 0)  s.conf = s.conf + 1; +			crep = 997; +			if ((s.mlieu == 2) && (s.iloic != 0))  treg(s.iloic); +		} +		return; +	} +	if (ipers > 0)  s.conf = s.conf + 1; +	cx = s.mlieu; +	if (s.mlieu == 16)  cx = 14; +	if (s.mlieu == 19)  cx = 15; +	crep = tabdon[asoul + (cx << 3) + pred(integer, num)]; +	if (crep == 255)  crep = 997;  } -/* overlay */ void tlire() -{ - integer iaff; +/* overlay */ void tlire() { +	integer iaff; - if (caff> 99)  st4(caff); else - { -  if (! syn)  ecr3("lire"); -  tfleche(); -  if (! (anyone) && ! (iesc))  -  { -   tcoord(4); -   if (num!= 0)  crep= 107; -  } - } +	if (caff > 99)  st4(caff); +	else { +		if (! syn)  ecr3("lire"); +		tfleche(); +		if (!(anyone) && !(iesc)) { +			tcoord(4); +			if (num != 0)  crep = 107; +		} +	}  } -/* overlay */ void tslire() -{ - if (s.derobj== 0)  crep= 186; else st4(s.derobj); +/* overlay */ void tslire() { +	if (s.derobj == 0)  crep = 186; +	else st4(s.derobj);  } -/* overlay */ void tregarder() -{ - integer cx; +/* overlay */ void tregarder() { +	integer cx; - if (caff> 99)  - { -  crep= 103; -  return; - } - if (! syn)  ecr3("regarder"); - tfleche(); - if ((anyone) || (iesc))  return; - tcoord(5); - if (num== 0)  - { -  tcoord(8); -  crep= 131; -  if (num!= 0)  -  { -   if (s.mlieu== 13)  -   { -    if (num== 1)  -    { -     crep= 164; -     if (s.ibag!= 0)  treg(s.ibag); else -      if (s.iboul!= 0)  treg(s.iboul); -    } -    else -    { -     crep= 193; -     if (s.ibag!= 0)  treg(s.ibag); -    } -   } -   if (s.mlieu== 14)  -   { -    crep= 164; -    if (s.icave!= 0)  treg(s.icave); -   } -   if (s.mlieu== 17)  -   { -    crep= 174; -    if (s.ivier!= 0)  treg(s.ivier); -   } -   if (s.mlieu== 24)  -   { -    crep= 131; -    if (s.ipuit!= 0)  treg(s.ipuit); -   } -  } -  return; - } - cx= s.mlieu; - if (s.mlieu== 20)  cx= 17; - if ((s.mlieu> 21) && (s.mlieu< 25))  cx= cx- 4; - if (s.mlieu== 26)  cx= 21; - crep= tabdon[arega+(cx*7)+pred(integer,num)]; - if ((s.mlieu== 13) && (num== 8))  crep= 126; - if (s.mlieu== 19)  crep= 103; - if (crep== 255)  crep= 131; - if ((s.mlieu== 1) && (num== 1))  treg(144); - if ((s.mlieu== 5) && (num== 3))  treg(147); - if ((s.mlieu== 8) && (num== 3))  treg(149); - if ((s.mlieu== 9) && (num== 2))  treg(30); - if ((s.mlieu== 10) && (num== 3))  treg(31); +	if (caff > 99) { +		crep = 103; +		return; +	} +	if (! syn)  ecr3("regarder"); +	tfleche(); +	if ((anyone) || (iesc))  return; +	tcoord(5); +	if (num == 0) { +		tcoord(8); +		crep = 131; +		if (num != 0) { +			if (s.mlieu == 13) { +				if (num == 1) { +					crep = 164; +					if (s.ibag != 0)  treg(s.ibag); +					else if (s.iboul != 0)  treg(s.iboul); +				} else { +					crep = 193; +					if (s.ibag != 0)  treg(s.ibag); +				} +			} +			if (s.mlieu == 14) { +				crep = 164; +				if (s.icave != 0)  treg(s.icave); +			} +			if (s.mlieu == 17) { +				crep = 174; +				if (s.ivier != 0)  treg(s.ivier); +			} +			if (s.mlieu == 24) { +				crep = 131; +				if (s.ipuit != 0)  treg(s.ipuit); +			} +		} +		return; +	} +	cx = s.mlieu; +	if (s.mlieu == 20)  cx = 17; +	if ((s.mlieu > 21) && (s.mlieu < 25))  cx = cx - 4; +	if (s.mlieu == 26)  cx = 21; +	crep = tabdon[arega + (cx * 7) + pred(integer, num)]; +	if ((s.mlieu == 13) && (num == 8))  crep = 126; +	if (s.mlieu == 19)  crep = 103; +	if (crep == 255)  crep = 131; +	if ((s.mlieu == 1) && (num == 1))  treg(144); +	if ((s.mlieu == 5) && (num == 3))  treg(147); +	if ((s.mlieu == 8) && (num == 3))  treg(149); +	if ((s.mlieu == 9) && (num == 2))  treg(30); +	if ((s.mlieu == 10) && (num == 3))  treg(31);  } -/* overlay */ void tsregarder() -{ - if (s.derobj!= 0)  treg(s.derobj); else crep= 186; +/* overlay */ void tsregarder() { +	if (s.derobj != 0)  treg(s.derobj); +	else crep = 186;  } -/* overlay */ void tfouiller() -{ -      const array<0,13,byte> r = {{123,104,123,131,131,123,104,131,123,123,106,123,123,107}}; - integer cx; +/* overlay */ void tfouiller() { +	const array<0, 13, byte> r = {{123, 104, 123, 131, 131, 123, 104, 131, 123, 123, 106, 123, 123, 107}}; +	integer cx; - if (caff> 99)  - { -  st7(caff); -  return; - } - if (! syn)  ecr3("fouiller"); - tfleche(); - if (anyone || iesc)  return; - if (s.mlieu==23)  - { -  crep= 1504; -  tperd(); -  return; - } - tcoord(6); - if (num== 0)  - { -  tcoord(7); -  if (num!=0)  -  { -   cx=0; -   do { -    cx=cx+1; -   } while (!((cx>6) || (num== ord(touv[cx])))); -   if (num!=ord(touv[cx]))  crep=187; else -   { -    if (ipers>0)  s.conf= s.conf+3; -    rechai(mchai); -    if (mchai!=0)  -    { -     cs=0; -     is=0; -     fouil=true; -     mfoudi(); -     tsuiv(); -    } -    else crep=997; -   } -  } -  else -  { -   tcoord(8); -   crep= 997; -   if (num!=0)  -   { -    if (ipers>0)  s.conf=s.conf+3; -    if ((s.mlieu!=24) && (s.mlieu!=17) && (s.mlieu!=13))  -    { -     if (s.mlieu==2)  -     { -      crep= 123; -      if (s.iloic!=0)  treg(s.iloic); -     } -     if (s.mlieu==16)  -     { -      crep= 123; -      if (s.icryp!=0)  treg(s.icryp); -     } -    } -   } -  } - } - else - { -  if (ipers>0)  s.conf=s.conf+ 3; -  crep= 997; -  if (s.mlieu < 14)  crep= r[s.mlieu]; -  if ((s.mlieu== 3) && (num== 2))  crep=162; -  if (s.mlieu== 12)  -  { -   if ((num== 3) || (num== 4))  crep=162; -   if (num== 5)  crep= 159; -  } -  if (s.mlieu==19)  crep=104; -  if (s.mlieu==16)  crep=155; - } +	if (caff > 99) { +		st7(caff); +		return; +	} +	if (! syn)  ecr3("fouiller"); +	tfleche(); +	if (anyone || iesc)  return; +	if (s.mlieu == 23) { +		crep = 1504; +		tperd(); +		return; +	} +	tcoord(6); +	if (num == 0) { +		tcoord(7); +		if (num != 0) { +			cx = 0; +			do { +				cx = cx + 1; +			} while (!((cx > 6) || (num == ord(touv[cx])))); +			if (num != ord(touv[cx]))  crep = 187; +			else { +				if (ipers > 0)  s.conf = s.conf + 3; +				rechai(mchai); +				if (mchai != 0) { +					cs = 0; +					is = 0; +					fouil = true; +					mfoudi(); +					tsuiv(); +				} else crep = 997; +			} +		} else { +			tcoord(8); +			crep = 997; +			if (num != 0) { +				if (ipers > 0)  s.conf = s.conf + 3; +				if ((s.mlieu != 24) && (s.mlieu != 17) && (s.mlieu != 13)) { +					if (s.mlieu == 2) { +						crep = 123; +						if (s.iloic != 0)  treg(s.iloic); +					} +					if (s.mlieu == 16) { +						crep = 123; +						if (s.icryp != 0)  treg(s.icryp); +					} +				} +			} +		} +	} else { +		if (ipers > 0)  s.conf = s.conf + 3; +		crep = 997; +		if (s.mlieu < 14)  crep = r[s.mlieu]; +		if ((s.mlieu == 3) && (num == 2))  crep = 162; +		if (s.mlieu == 12) { +			if ((num == 3) || (num == 4))  crep = 162; +			if (num == 5)  crep = 159; +		} +		if (s.mlieu == 19)  crep = 104; +		if (s.mlieu == 16)  crep = 155; +	}  } -/* overlay */ void tsfouiller() -{ - if (s.derobj!=0)  st7(s.derobj); else crep= 186; +/* overlay */ void tsfouiller() { +	if (s.derobj != 0)  st7(s.derobj); +	else crep = 186;  } -/* overlay */ void touvrir() -{ - integer cx,haz; +/* overlay */ void touvrir() { +	integer cx, haz; - if (! syn)  ecr3("ouvrir"); - if (caff== 26)  - { -  if (ment!= 0)  -  { -   msg[4]= entrer; -   syn= true; -  } -  else crep= 997; -  return; - } - if (caff== 15)  - { -  aldepl(); -  return; - } - tfleche(); - if ((anyone) || (iesc))  return; - tcoord(7); - if (num!= 0)  - { -  if (ipers> 0)  s.conf= s.conf+ 2; -  iouv= iouv+ 1; -  cx= 0; -  do { -   cx= cx+ 1; -  } while (!((cx> 6) || (ord(touv[cx])== 0) || (ord(touv[cx])== num))); -  if (ord(touv[cx])!= num)  -  { -   if (! -    ( -     ( (num== 3) && ((s.mlieu== 0) || (s.mlieu== 9) || (s.mlieu== 5) || (s.mlieu== 7)) ) -     || -      ((num== 4) && ((s.mlieu== 1) || (s.mlieu== 2) || (s.mlieu== 6))) || -      ((s.mlieu== 4) && (num== 5)) || -      ((num== 6) && ((s.mlieu== 7) || (s.mlieu== 10) || -                     (s.mlieu== 8) || (s.mlieu== 13))) || -      ((s.mlieu== 8) && (num== 2)) || -      ((s.mlieu== 12) && (num== 7))))  -      { -         if (((s.mlieu> 10) && (s.mlieu< 14)) || -          ((s.mlieu> 6) && (s.mlieu< 10)) || -          (s.mlieu== 0) || (s.mlieu== 2) || (s.mlieu== 5))  -          { -            haz= hazard(1, 4); -            if (haz== 3)  parole(7, 9, 1); -          } -        touv[cx]= chr(num); -        aniof(1,num); -      } -   cx= s.mlieu; -   if (s.mlieu== 16)  cx= 14; -   crep= tabdon[aouvr+ (cx* 7)+ pred(integer,num)]; -   if (crep== 254)  crep= 999; -  } -  else crep= 18; - } +	if (! syn)  ecr3("ouvrir"); +	if (caff == 26) { +		if (ment != 0) { +			msg[4] = entrer; +			syn = true; +		} else crep = 997; +		return; +	} +	if (caff == 15) { +		aldepl(); +		return; +	} +	tfleche(); +	if ((anyone) || (iesc))  return; +	tcoord(7); +	if (num != 0) { +		if (ipers > 0)  s.conf = s.conf + 2; +		iouv = iouv + 1; +		cx = 0; +		do { +			cx = cx + 1; +		} while (!((cx > 6) || (ord(touv[cx]) == 0) || (ord(touv[cx]) == num))); +		if (ord(touv[cx]) != num) { +			if (! +			        ( +			            ((num == 3) && ((s.mlieu == 0) || (s.mlieu == 9) || (s.mlieu == 5) || (s.mlieu == 7))) +			            || +			            ((num == 4) && ((s.mlieu == 1) || (s.mlieu == 2) || (s.mlieu == 6))) || +			            ((s.mlieu == 4) && (num == 5)) || +			            ((num == 6) && ((s.mlieu == 7) || (s.mlieu == 10) || +			                            (s.mlieu == 8) || (s.mlieu == 13))) || +			            ((s.mlieu == 8) && (num == 2)) || +			            ((s.mlieu == 12) && (num == 7)))) { +				if (((s.mlieu > 10) && (s.mlieu < 14)) || +				        ((s.mlieu > 6) && (s.mlieu < 10)) || +				        (s.mlieu == 0) || (s.mlieu == 2) || (s.mlieu == 5)) { +					haz = hazard(1, 4); +					if (haz == 3)  parole(7, 9, 1); +				} +				touv[cx] = chr(num); +				aniof(1, num); +			} +			cx = s.mlieu; +			if (s.mlieu == 16)  cx = 14; +			crep = tabdon[aouvr + (cx * 7) + pred(integer, num)]; +			if (crep == 254)  crep = 999; +		} else crep = 18; +	}  } -/* overlay */ void tmettre() -{ - integer quel; - boolean entre; - phrase st; - str255 str_; - integer i,tay; +/* overlay */ void tmettre() { +	integer quel; +	boolean entre; +	phrase st; +	str255 str_; +	integer i, tay; - if (s.derobj== 0)  - { -  crep= 186; -  return; - } - if (! syn)  ecr3("mettre"); - tfleche(); - if (iesc)  crep= 998; - if ((anyone) || (iesc))  return; - tcoord(8); - if (num!= 0)  - { -  crep= 999; -  if (caff== 13)  -  { -   if (num== 1)  -   { -    if (s.iboul!= 0)  crep= 188; else -    { -     s.iboul= s.derobj; -     if (s.derobj== 141)  aniof(1,7); -    } -   } -   else -    if (s.ibag!= 0)  crep= 188; else -    { -     s.ibag= s.derobj; -     if (s.derobj== 159)  aniof(1,6); -    } -  } -  if (caff== 14)  -   if (s.icave!=0)  crep= 188; else -   { -    s.icave= s.derobj; -    if (s.derobj== 151)  -    { -     aniof(1,2); -     aniof(1,1); -     repon(2,165); -     maivid(); -     parole(6, -9, 1); -     quel= do_alert(stouinon,1); -     if (quel==1)  { -                      deline(582,st,tay); -                      i= do_alert(delig,1); -                      tesok=false; -                      entre= ques(); -                      hide_mouse(); -                      hirs(); -                      dessine_rouleau(); -                      clsf2(); -                      clsf3(); -                      show_mouse(); -                      tinke(); -                      pendule(); -                      if (ipers!=0)  affper(ipers); -                                  else person(); -                      menu_aff(); -                      if (entre)  -                         { -                           s.mlieu= 17; -                           tmlieu(17); -                         } -                        else -                         { -                           tmlieu(s.mlieu); -                           writepal(14); -                           dessin(0); -                           aniof(1,2); -                           aniof(1,1); -                           deline(577,st,tay); -                           i= do_alert(delig,1); -                           aniof(2,1); -                           crep= 166; -                         } -                      affrep(); -                    } -               else { -                      aniof(2,1); -                      crep= 166; -                      tesok=true; -                    } -     return; -    } -   } -  if (caff== 16)  -   if (s.icryp== 0)  s.icryp= s.derobj; else crep= 188; -  if (caff== 17)  -   if (s.ivier!=0)  crep= 188; else -    if (s.derobj== 143)  -    { -     s.ivier= 143; -     aniof(1,1); -    } -    else -    { -     crep= 1512; -     tperd(); -    } -  if (caff== 24)  -   if (s.ipuit!= 0)  crep= 188; else -    if ((s.derobj== 140) || (s.derobj== 120))  -    { -     s.ipuit= s.derobj; -     aniof(1,1); -    } -    else crep= 185; -  if (crep!= 188)  maivid(); - } +	if (s.derobj == 0) { +		crep = 186; +		return; +	} +	if (! syn)  ecr3("mettre"); +	tfleche(); +	if (iesc)  crep = 998; +	if ((anyone) || (iesc))  return; +	tcoord(8); +	if (num != 0) { +		crep = 999; +		if (caff == 13) { +			if (num == 1) { +				if (s.iboul != 0)  crep = 188; +				else { +					s.iboul = s.derobj; +					if (s.derobj == 141)  aniof(1, 7); +				} +			} else if (s.ibag != 0)  crep = 188; +			else { +				s.ibag = s.derobj; +				if (s.derobj == 159)  aniof(1, 6); +			} +		} +		if (caff == 14) +			if (s.icave != 0)  crep = 188; +			else { +				s.icave = s.derobj; +				if (s.derobj == 151) { +					aniof(1, 2); +					aniof(1, 1); +					repon(2, 165); +					maivid(); +					parole(6, -9, 1); +					quel = do_alert(stouinon, 1); +					if (quel == 1)  { +						deline(582, st, tay); +						i = do_alert(delig, 1); +						tesok = false; +						entre = ques(); +						hide_mouse(); +						hirs(); +						dessine_rouleau(); +						clsf2(); +						clsf3(); +						show_mouse(); +						tinke(); +						pendule(); +						if (ipers != 0)  affper(ipers); +						else person(); +						menu_aff(); +						if (entre) { +							s.mlieu = 17; +							tmlieu(17); +						} else { +							tmlieu(s.mlieu); +							writepal(14); +							dessin(0); +							aniof(1, 2); +							aniof(1, 1); +							deline(577, st, tay); +							i = do_alert(delig, 1); +							aniof(2, 1); +							crep = 166; +						} +						affrep(); +					} else { +						aniof(2, 1); +						crep = 166; +						tesok = true; +					} +					return; +				} +			} +		if (caff == 16) +			if (s.icryp == 0)  s.icryp = s.derobj; +			else crep = 188; +		if (caff == 17) +			if (s.ivier != 0)  crep = 188; +			else if (s.derobj == 143) { +				s.ivier = 143; +				aniof(1, 1); +			} else { +				crep = 1512; +				tperd(); +			} +		if (caff == 24) +			if (s.ipuit != 0)  crep = 188; +			else if ((s.derobj == 140) || (s.derobj == 120)) { +				s.ipuit = s.derobj; +				aniof(1, 1); +			} else crep = 185; +		if (crep != 188)  maivid(); +	}  } -/* overlay */ void ttourner() -{ - integer quel; +/* overlay */ void ttourner() { +	integer quel; - if (caff> 99)  - { -  crep= 149; -  return; - } - if (! syn)  ecr3("tourner"); - tfleche(); - if ((anyone) || (iesc))  return; - tcoord(9); - if (num!= 0)  - { -  crep= 997; -  if ((s.mlieu== 13) && (s.ibag== 159) && (s.iboul== 141))  -  { -   repon(2,167); -   parole(7, 9, 1); -   quel= do_alert(stouinon,1); -   if (quel== 1)  solu= true; else crep= 168; -  } -  if ((s.mlieu== 17) && (s.ivier== 143))  -  { -   repon(2, 175); -   clsf3(); -   parole(6, -9, 1); -   quel= do_alert(stouinon,1); -   if (quel== 1)  -   { -    s.mlieu= 16; -    affrep(); -   } -   else crep= 176; -  } - } +	if (caff > 99) { +		crep = 149; +		return; +	} +	if (! syn)  ecr3("tourner"); +	tfleche(); +	if ((anyone) || (iesc))  return; +	tcoord(9); +	if (num != 0) { +		crep = 997; +		if ((s.mlieu == 13) && (s.ibag == 159) && (s.iboul == 141)) { +			repon(2, 167); +			parole(7, 9, 1); +			quel = do_alert(stouinon, 1); +			if (quel == 1)  solu = true; +			else crep = 168; +		} +		if ((s.mlieu == 17) && (s.ivier == 143)) { +			repon(2, 175); +			clsf3(); +			parole(6, -9, 1); +			quel = do_alert(stouinon, 1); +			if (quel == 1) { +				s.mlieu = 16; +				affrep(); +			} else crep = 176; +		} +	}  } -/* overlay */ void tcacher() -{ - if (! syn)  ecr3("se cacher"); - tfleche(); - if (! (anyone) && ! (iesc))  - { -  tcoord(10); -  if (num== 0)  cache= false; else -  { -   cache= true; -   crep= 999; -  } - } +/* overlay */ void tcacher() { +	if (! syn)  ecr3("se cacher"); +	tfleche(); +	if (!(anyone) && !(iesc)) { +		tcoord(10); +		if (num == 0)  cache = false; +		else { +			cache = true; +			crep = 999; +		} +	}  } -/* overlay */ void tattacher() -{ - if (s.derobj== 0)  crep= 186; else - { -  if (! syn)  ecr3("attacher"); -  tfleche(); -  if (! (anyone) && ! (iesc))  -  { -   tcoord(8); -   crep= 997; -   if ((num!= 0) && (s.mlieu== 24))  -   { -    crep= 999; -    if ((s.derobj== 120) || (s.derobj== 140))  -    { -     s.ipuit= s.derobj; -     aniof(1,1); -    } -    else crep= 185; -    maivid(); -   } -  } - } +/* overlay */ void tattacher() { +	if (s.derobj == 0)  crep = 186; +	else { +		if (! syn)  ecr3("attacher"); +		tfleche(); +		if (!(anyone) && !(iesc)) { +			tcoord(8); +			crep = 997; +			if ((num != 0) && (s.mlieu == 24)) { +				crep = 999; +				if ((s.derobj == 120) || (s.derobj == 140)) { +					s.ipuit = s.derobj; +					aniof(1, 1); +				} else crep = 185; +				maivid(); +			} +		} +	}  } -/* overlay */ void tfermer() -{ - integer cx,chai; +/* overlay */ void tfermer() { +	integer cx, chai; - if (! syn)  ecr3("fermer"); - if (caff< 26)  - { -  tfleche(); -  if (iesc)  crep= 998; -  if ((anyone) || (iesc))  return; -  tcoord(7); -  if (num!= 0)  -  { -   cx= 0; -   do { -    cx= cx+ 1; -   } while (!((cx> 6) || (num== ord(touv[cx])))); -   if (num== ord(touv[cx]))  -   { -    aniof(2,num); -    crep= 998; -    touv[cx]= chr(0); -    iouv= iouv- 1; -    if (iouv< 0)  iouv= 0; -    chai= 9999; -    rechai(chai); -    if (mchai== chai)  mchai= 0; -   } -   else crep= 187; -  } - } - if (caff== 26)  crep= 999; +	if (! syn)  ecr3("fermer"); +	if (caff < 26) { +		tfleche(); +		if (iesc)  crep = 998; +		if ((anyone) || (iesc))  return; +		tcoord(7); +		if (num != 0) { +			cx = 0; +			do { +				cx = cx + 1; +			} while (!((cx > 6) || (num == ord(touv[cx])))); +			if (num == ord(touv[cx])) { +				aniof(2, num); +				crep = 998; +				touv[cx] = chr(0); +				iouv = iouv - 1; +				if (iouv < 0)  iouv = 0; +				chai = 9999; +				rechai(chai); +				if (mchai == chai)  mchai = 0; +			} else crep = 187; +		} +	} +	if (caff == 26)  crep = 999;  } -/* overlay */ void tfrapper() -{ - integer l,p,haz; +/* overlay */ void tfrapper() { +	integer l, p, haz; - if (! syn)  ecr3("frapper"); - if (s.mlieu== 15)  - { -  l= do_alert("[1][ | Avant, utilisez le menu DEP...][ok]",1); -  return; - } - if (s.mlieu< 25)  - { -  tfleche(); -  if (! (anyone) && ! (iesc))  -   if ((s.mlieu< 19) && (s.mlieu!= 15))  crep= 133; else crep= 997; -  return; - } - if (s.mlieu== 26)  - { -  haz= (hazard(0, 8))- 4; -  parole(11, haz, 1); -  ecfren(p,haz,s.conf,ment); -  l= ment; -  if (l!= 0)  -   if (p!= -500)  -   { -    if (haz> p)  crep= 190; else -    { -     becfren(l); -     frap(); -    } -   } -   else frap(); -  if (ment== 8)  crep= 190; - } +	if (! syn)  ecr3("frapper"); +	if (s.mlieu == 15) { +		l = do_alert("[1][ | Avant, utilisez le menu DEP...][ok]", 1); +		return; +	} +	if (s.mlieu < 25) { +		tfleche(); +		if (!(anyone) && !(iesc)) +			if ((s.mlieu < 19) && (s.mlieu != 15))  crep = 133; +			else crep = 997; +		return; +	} +	if (s.mlieu == 26) { +		haz = (hazard(0, 8)) - 4; +		parole(11, haz, 1); +		ecfren(p, haz, s.conf, ment); +		l = ment; +		if (l != 0) +			if (p != -500) { +				if (haz > p)  crep = 190; +				else { +					becfren(l); +					frap(); +				} +			} else frap(); +		if (ment == 8)  crep = 190; +	}  } -/* overlay */ void tposer() -{ - integer cx,chai; +/* overlay */ void tposer() { +	integer cx, chai; - if (! syn)  ecr3("poser"); - if (s.derobj== 0)  crep= 186; else - { -  if (caff> 99)  -  { -    crep= 999; -    ajchai(); -    if (crep!= 192)  maivid(); -    return; -  } -  tfleche(); -  if ((anyone) || (iesc))  return; -  tcoord(7); -  crep= 124; -  if (num!= 0)  -  { -   rechai(chai); -   if (chai== 0)  crep= 997; else -   { -    cx= 0; -    do { -     cx= cx+ 1; -    } while (!((cx> 6) || (num== ord(touv[cx])))); -    if (num!= ord(touv[cx]))  crep= 187; else -    { -     mchai= chai; -     crep= 999; -    } -   } -  } -  else -  { -   tcoord(8); -   if (num!= 0)  -   { -    crep= 998; -    if (caff== 2)  -     if (s.iloic!= 0)  crep= 188; else s.iloic= s.derobj; -    if (caff== 13)  -    { -     if (num== 1)  -     { -      if (s.iboul!= 0)  crep= 188; else s.iboul= s.derobj; -     } -     else -      if (s.ibag!= 0)  crep= 188; else s.ibag= s.derobj; -    } -    if (caff== 16)  -     if (s.icryp!= 0)  crep= 188; else s.icryp= s.derobj; -    if (caff== 24)  crep= 185; -    if ((caff== 14) || (caff== 17))  crep= 124; -   } -   else -   { -    crep= 124; -    if (caff== 24)  -    { -     tcoord(5); -     if (num!= 0)  crep= 185; -    } -   } -  } -  if (caff== 23)  crep= 185; -  if ((crep== 999) || (crep== 185) || (crep== 998))  -  { -   if (crep== 999)  ajchai(); -   if (crep!= 192)  maivid(); -  } - } +	if (! syn)  ecr3("poser"); +	if (s.derobj == 0)  crep = 186; +	else { +		if (caff > 99) { +			crep = 999; +			ajchai(); +			if (crep != 192)  maivid(); +			return; +		} +		tfleche(); +		if ((anyone) || (iesc))  return; +		tcoord(7); +		crep = 124; +		if (num != 0) { +			rechai(chai); +			if (chai == 0)  crep = 997; +			else { +				cx = 0; +				do { +					cx = cx + 1; +				} while (!((cx > 6) || (num == ord(touv[cx])))); +				if (num != ord(touv[cx]))  crep = 187; +				else { +					mchai = chai; +					crep = 999; +				} +			} +		} else { +			tcoord(8); +			if (num != 0) { +				crep = 998; +				if (caff == 2) +					if (s.iloic != 0)  crep = 188; +					else s.iloic = s.derobj; +				if (caff == 13) { +					if (num == 1) { +						if (s.iboul != 0)  crep = 188; +						else s.iboul = s.derobj; +					} else if (s.ibag != 0)  crep = 188; +					else s.ibag = s.derobj; +				} +				if (caff == 16) +					if (s.icryp != 0)  crep = 188; +					else s.icryp = s.derobj; +				if (caff == 24)  crep = 185; +				if ((caff == 14) || (caff == 17))  crep = 124; +			} else { +				crep = 124; +				if (caff == 24) { +					tcoord(5); +					if (num != 0)  crep = 185; +				} +			} +		} +		if (caff == 23)  crep = 185; +		if ((crep == 999) || (crep == 185) || (crep == 998)) { +			if (crep == 999)  ajchai(); +			if (crep != 192)  maivid(); +		} +	}  } -/* overlay */ void tecouter() -{ - integer l,p,haz,j,h,m; +/* overlay */ void tecouter() { +	integer l, p, haz, j, h, m; - if (s.mlieu!= 26)  crep= 101; else - { -  if (ipers!= 0)  s.conf= s.conf+ 1; -  ecfren(p,haz,s.conf,ment); -  l= ment; -  if (l!= 0)  -   if (p!= -500)  -   { -    if (haz> p)  crep= 101; else -    { -     becfren(l); -     calch(j,h,m); -     haz= hazard(1,100); -     if ((h>= 0) && (h< 8))  -     { -      if (haz> 30)  crep= 101; else crep= 178; -     } -     else -      if (haz> 70)  crep= 101; else crep= 178; -    } -   } -   else crep= 178; - } +	if (s.mlieu != 26)  crep = 101; +	else { +		if (ipers != 0)  s.conf = s.conf + 1; +		ecfren(p, haz, s.conf, ment); +		l = ment; +		if (l != 0) +			if (p != -500) { +				if (haz > p)  crep = 101; +				else { +					becfren(l); +					calch(j, h, m); +					haz = hazard(1, 100); +					if ((h >= 0) && (h < 8)) { +						if (haz > 30)  crep = 101; +						else crep = 178; +					} else if (haz > 70)  crep = 101; +					else crep = 178; +				} +			} else crep = 178; +	}  } -/* overlay */ void tmanger() -{ - integer j,h,m; +/* overlay */ void tmanger() { +	integer j, h, m; - if ((s.mlieu> 15) && (s.mlieu< 26))  -  crep= 148; - else - { -  tsort(); -  s.mlieu= 10; -  caff= 10; -  debloc(s.mlieu); -  tmlieu(s.mlieu); -  calch(j,h,m); -  if ((h== 12) || (h== 13) || (h== 19))  -  { -   s.conf= s.conf- (s.conf / 7); -   if (h== 12)  -    if (m== 0)  h= 4; else h= 3; -   if ((h== 13) || (h== 19))  -    if (m== 0)  h= 2; else h= 1; -   jh= jh+ h; -   crep= 135; -   tinke(); -  } -  else crep= 134; - } +	if ((s.mlieu > 15) && (s.mlieu < 26)) +		crep = 148; +	else { +		tsort(); +		s.mlieu = 10; +		caff = 10; +		debloc(s.mlieu); +		tmlieu(s.mlieu); +		calch(j, h, m); +		if ((h == 12) || (h == 13) || (h == 19)) { +			s.conf = s.conf - (s.conf / 7); +			if (h == 12) +				if (m == 0)  h = 4; +				else h = 3; +			if ((h == 13) || (h == 19)) +				if (m == 0)  h = 2; +				else h = 1; +			jh = jh + h; +			crep = 135; +			tinke(); +		} else crep = 134; +	}  } -/* overlay */ void tentrer() -{ - integer x, z; +/* overlay */ void tentrer() { +	integer x, z; - if ((s.mlieu== 21) || (s.mlieu== 22))  - { -  t1sama(); -  tmlieu(s.mlieu); - } - else -  if (s.mlieu== 15)  aldepl(); else -   if (ment== 0)  crep= 997; else -   { -    if ((ment== 9) && (s.derobj!= 136))  -    { -     crep= 189; -     s.teauto[8]= '*'; -    } -    else -    { -     if (! blo)  t11(ment, z); -     if (z!= 0)  -     { -      if ((ment== 3) || (ment== 7))  crep= 179; else -      { -       x= (hazard(0, 10))- 5; -       parole(7, x, 1); -       aniof(1,1); -/*       tkey(5,32000);*/ -       tip(z,x); -       s.conf= s.conf+ 1; -       s.mlieu= 15; -       msg[3]= discut; -       msg[4]= disc[x]; -       syn= true; -       if (ment== 9)  -       { -        col= true; -        caff= 70; -        afdes(0); -        repon(2,caff); -       } -       else col= false; -       debloc(ment); -       ment= 0; -      } -     } -     else -     { -      x= (hazard(0, 10))- 5; -      parole(7, x, 1); -      aniof(1,1); -/*      tkey(1,32000);*/ -      s.mlieu= ment; -      affrep(); -      debloc(s.mlieu); -      tmlieu(s.mlieu); -      ment= 0; -      mpers= 0; -      ipers= 0; -     } -    } -   } +	if ((s.mlieu == 21) || (s.mlieu == 22)) { +		t1sama(); +		tmlieu(s.mlieu); +	} else if (s.mlieu == 15)  aldepl(); +	else if (ment == 0)  crep = 997; +	else { +		if ((ment == 9) && (s.derobj != 136)) { +			crep = 189; +			s.teauto[8] = '*'; +		} else { +			if (! blo)  t11(ment, z); +			if (z != 0) { +				if ((ment == 3) || (ment == 7))  crep = 179; +				else { +					x = (hazard(0, 10)) - 5; +					parole(7, x, 1); +					aniof(1, 1); +					/*       tkey(5,32000);*/ +					tip(z, x); +					s.conf = s.conf + 1; +					s.mlieu = 15; +					msg[3] = discut; +					msg[4] = disc[x]; +					syn = true; +					if (ment == 9) { +						col = true; +						caff = 70; +						afdes(0); +						repon(2, caff); +					} else col = false; +					debloc(ment); +					ment = 0; +				} +			} else { +				x = (hazard(0, 10)) - 5; +				parole(7, x, 1); +				aniof(1, 1); +				/*      tkey(1,32000);*/ +				s.mlieu = ment; +				affrep(); +				debloc(s.mlieu); +				tmlieu(s.mlieu); +				ment = 0; +				mpers = 0; +				ipers = 0; +			} +		} +	}  } -/* overlay */ void tdormir() -{ - const char m1[] = "D‚sirez-vous vous r‚veiller?"; - integer z,j,h,m,quel; +/* overlay */ void tdormir() { +	const char m1[] = "D‚sirez-vous vous r‚veiller?"; +	integer z, j, h, m, quel; - if ((s.mlieu> 15) && (s.mlieu< 26))  - { -  crep= 148; -  return; - } - if (s.mlieu != 0)  - { -  tsort(); -  s.mlieu= 0; -  affrep(); -  afdes(0); -  debloc(s.mlieu); -  tmlieu(s.mlieu); - } - clsf3(); - clsf2(); - ecrf2(); - ecr2(m1); - calch(j,h,m); - do { -   if (h< 8)  -     { -       s.conf= s.conf- (s.conf / 20); -       z= (7- h)* 2; -       if (m== 30)  z= z- 1; -       jh= jh+ z; -       h= 7; -     } -   jh= jh+ 2; -   h= h+ 1; -   if (h> 23)  h= 0; -   tinke(); -   quel= do_alert(stouinon,1); -   anyone= false; - } while (!(quel== 1)); - crep= 998; - num= 0; +	if ((s.mlieu > 15) && (s.mlieu < 26)) { +		crep = 148; +		return; +	} +	if (s.mlieu != 0) { +		tsort(); +		s.mlieu = 0; +		affrep(); +		afdes(0); +		debloc(s.mlieu); +		tmlieu(s.mlieu); +	} +	clsf3(); +	clsf2(); +	ecrf2(); +	ecr2(m1); +	calch(j, h, m); +	do { +		if (h < 8) { +			s.conf = s.conf - (s.conf / 20); +			z = (7 - h) * 2; +			if (m == 30)  z = z - 1; +			jh = jh + z; +			h = 7; +		} +		jh = jh + 2; +		h = h + 1; +		if (h > 23)  h = 0; +		tinke(); +		quel = do_alert(stouinon, 1); +		anyone = false; +	} while (!(quel == 1)); +	crep = 998; +	num = 0;  } -/* overlay */ void tdefoncer() -{ - if (! syn)  ecr3("d‚foncer"); - if (caff< 25)  tfleche(); - if ((! anyone) && (! iesc))  -    if (s.mlieu!= 26)  crep= 997; else -   { -     crep= 143; -     s.conf= s.conf+ 2; -   } +/* overlay */ void tdefoncer() { +	if (! syn)  ecr3("d‚foncer"); +	if (caff < 25)  tfleche(); +	if ((! anyone) && (! iesc)) +		if (s.mlieu != 26)  crep = 997; +		else { +			crep = 143; +			s.conf = s.conf + 2; +		}  } -/* overlay */ void tsortir() -{ - integer lx; +/* overlay */ void tsortir() { +	integer lx; - tsort(); - crep= 0; - if ((s.mlieu== 19) || (s.mlieu== 21) || (s.mlieu== 22) - || (s.mlieu== 24))  crep= 997; else - { -  if ((s.mlieu< 16) || (s.mlieu== 26))  lx= 10; -  if ((s.mlieu== 10) || (s.mlieu== 20))  lx= 21; -  if ((s.mlieu< 10) || (s.mlieu== 13))  lx= 15; -  if (s.mlieu== 16)  -  { -   lx= 17; -   crep= 176; -  } -  if (s.mlieu== 17)  t23coul(lx); -  if (s.mlieu== 23)  lx= 24; -  if (crep!= 997)  s.mlieu= lx; -  caff= lx; -  if (crep== 0)  crep= lx; -  debloc(lx); -  tmlieu(lx); - } +	tsort(); +	crep = 0; +	if ((s.mlieu == 19) || (s.mlieu == 21) || (s.mlieu == 22) +	        || (s.mlieu == 24))  crep = 997; +	else { +		if ((s.mlieu < 16) || (s.mlieu == 26))  lx = 10; +		if ((s.mlieu == 10) || (s.mlieu == 20))  lx = 21; +		if ((s.mlieu < 10) || (s.mlieu == 13))  lx = 15; +		if (s.mlieu == 16) { +			lx = 17; +			crep = 176; +		} +		if (s.mlieu == 17)  t23coul(lx); +		if (s.mlieu == 23)  lx = 24; +		if (crep != 997)  s.mlieu = lx; +		caff = lx; +		if (crep == 0)  crep = lx; +		debloc(lx); +		tmlieu(lx); +	}  } -/* overlay */ void tattendre() -{ - integer quel; +/* overlay */ void tattendre() { +	integer quel; - mpers= 0; - clsf3(); - do { -   jh= jh+ 1; -   tinke(); -   if (! blo)  t11(s.mlieu, quel); -   if ((ipers!= 0) && (mpers== 0))  -   { -     crep= 998; -     if ((s.mlieu== 13) || (s.mlieu== 14))  cavegre(); -     if ((s.mlieu> 0) && (s.mlieu< 10))  anyone= true; -     mpers= ipers; -     if (! anyone)  tinke(); -     return; -   } -   repon(2,102); -   quel= do_alert(stouinon,1); - } while (!(quel== 2)); - crep= 998; - if (! anyone)  tinke(); +	mpers = 0; +	clsf3(); +	do { +		jh = jh + 1; +		tinke(); +		if (! blo)  t11(s.mlieu, quel); +		if ((ipers != 0) && (mpers == 0)) { +			crep = 998; +			if ((s.mlieu == 13) || (s.mlieu == 14))  cavegre(); +			if ((s.mlieu > 0) && (s.mlieu < 10))  anyone = true; +			mpers = ipers; +			if (! anyone)  tinke(); +			return; +		} +		repon(2, 102); +		quel = do_alert(stouinon, 1); +	} while (!(quel == 2)); +	crep = 998; +	if (! anyone)  tinke();  } -/* overlay */ void tsonder() -{ - if (! syn)  ecr3("sonder"); - if (caff< 27)  - { -  tfleche(); -  if (! (anyone) && (! iesc))  crep= 145; -  num= 0; - } +/* overlay */ void tsonder() { +	if (! syn)  ecr3("sonder"); +	if (caff < 27) { +		tfleche(); +		if (!(anyone) && (! iesc))  crep = 145; +		num = 0; +	}  }  /* overlay */ void tparler()  { -                               array<1,46,boolean> te; -       integer ix, cy, cx, max, haz, suj, co,lig,icm, -            i, tay, choi, x, y, c; -                              char tou; -                              array<1,46,varying_string<40> > lib; -                               phrase st; -                                boolean f; +	array<1, 46, boolean> te; +	integer ix, cy, cx, max, haz, suj, co, lig, icm, +	        i, tay, choi, x, y, c; +	char tou; +	array<1, 46, varying_string<40> > lib; +	phrase st; +	boolean f; - finfouil(); - if (col)  suj= 128; else -  { -    cx= 0; -    do { -      cx= cx+ 1; -    } while (!(disc[cx]== msg[4])); -    caff= 69+ cx; -    afdes(0); -    repon(2,caff); -    suj= caff+ 60; -  } - tkey1(false); - mennor(); - hide_mouse(); - hirs(); - premtet(); - sparl(0,suj); - hirs(); - for( ix= 1; ix <= 46; ix ++) te[ix]= false; - for( ix=1; ix <= 45; ix ++) -     { -       deline(ix+c_tparler,st,tay); -       lib[ix]= delig; -       for( i=tay; i <= 40; i ++) lib[ix]=lib[ix]+' '; -     } - lib[46]=lib[45]; - lib[45]=' '; - show_mouse(); - do { -   choi= 0; -   icm= 0; -   co= 0; -   lig= 0; -   do { -     icm= succ(integer, icm ); -     putxy(co,lig); -     if (s.teauto[icm]=='*')  -     if (te[icm])  writetp(lib[icm],1); -                  else writetp(lib[icm],0); -     if (icm==23)  { -                      lig= 0; -                      co= 320; -                    } -               else lig= lig + 8; -   } while (!(icm==42)); -   putxy(320,176); -   writetp(lib[46],0); -   tou= '\0'; -   do { -     mov_mouse(f,tou); -/*     if keypressed then read(kbd,tou);*/ -     read_pos_mouse(x,y,c); -     x= x *(3-res); -     if (x>319)  cx= 41; else cx= 1; -     cy= succ(integer,(cardinal)y >> 3);                    /* 0-199 => 1-25 */ -     if ((cy>23) || ((cx==41) && (set::of(range(20,22), eos).has(cy))))  -             { -               if (choi!=0)  -                  { -                    lig= ((choi-1) % 23) << 3; -                    if (choi>23)  co= 320; else co= 0; -                    putxy(co,lig); -                    if (te[choi])  writetp(lib[choi],0); -                                else writetp(lib[choi],1); -                    te[choi]= ! te[choi]; -                    choi= 0; -                  } -             } -        else { -               ix= cy; -               if (cx==41)  ix= ix+23; -               if (ix!=choi)  -                  { -                    if (choi!=0)  -                       { -                         lig= ((choi-1) % 23) << 3; -                         if (choi>23)  co= 320; else co= 0; -                         putxy(co,lig); -                         if (te[choi])  writetp(lib[choi],0); -                                     else writetp(lib[choi],1); -                         te[choi]= ! te[choi]; -                       } -                    if ((s.teauto[ix]=='*') || (ix==46))  -                       { -                         lig= ((ix-1) % 23) << 3; -                         if (ix>23)  co= 320; else co= 0; -                         putxy(co,lig); -                         if (te[ix])  writetp(lib[ix],0); -                                   else writetp(lib[ix],1); -                         te[ix]= ! te[ix]; -                         choi= ix; -                       } -                      else choi= 0; -                  } -             } -   } while (!((tou=='\15') || ( ((c!=0) || clic) && (choi!=0)))); -   clic=false; -   if (choi!=46)  -      { -        ix= choi-1; -        if (col)  -           { -             col= false; -             s.mlieu= 15; -             if (iouv> 0)  max= 8; else max= 4; -             haz= hazard(1,max); -             if (haz== 2)  suj= 129; else -                { -                  suj= 138; -                  s.conf= s.conf+ (3* (s.conf / 10)); -                } -           } -          else -           if (nbrep[caff- 69]< nbrepm[caff- 69])  -           { -             suj= tabdon[arep+ (ix << 3)+ (caff- 70)]; -             s.conf= s.conf+ tabdon[arcf+ ix]; -             nbrep[caff- 69]= nbrep[caff- 69]+ 1; -           } -          else -           { -             s.conf= s.conf+ 3; -             suj= 139; -           } -        hide_mouse(); -        hirs(); -        premtet(); -        sparl(0, suj); -        show_mouse(); -        if ((suj== 84) || (suj== 86))  -           { -             s.pourc[5]= '*'; -             s.teauto[7]= '*'; -           } -        if ((suj== 106) || (suj== 108) || (suj== 94))  -           { -             for( ix= 29; ix <= 31; ix ++) s.teauto[ix]= '*'; -             s.pourc[7]= '*'; -           } -        if (suj== 70)  -           { -             s.pourc[8]= '*'; -             s.teauto[32]= '*'; -           } -        hide_mouse(); -        hirs(); -        show_mouse(); -      } -    } while (!((choi== 46) || (suj== 138))); - if (col)  - { -  s.conf= s.conf+ (3* (s.conf / 10)); -  hide_mouse(); -  hirs(); -  premtet(); -  sparl(0, 138); -  show_mouse(); -  col= false; -  s.mlieu= 15; - } - ctrm= 0; - hide_mouse(); - hirs(); - dessine_rouleau(); - show_mouse(); - affper(ipers); - tinke(); - pendule(); - affrep(); -/* chech;*/ - tmlieu(s.mlieu); - clsf3(); +	finfouil(); +	if (col)  suj = 128; +	else { +		cx = 0; +		do { +			cx = cx + 1; +		} while (!(disc[cx] == msg[4])); +		caff = 69 + cx; +		afdes(0); +		repon(2, caff); +		suj = caff + 60; +	} +	tkey1(false); +	mennor(); +	hide_mouse(); +	hirs(); +	premtet(); +	sparl(0, suj); +	hirs(); +	for (ix = 1; ix <= 46; ix ++) te[ix] = false; +	for (ix = 1; ix <= 45; ix ++) { +		deline(ix + c_tparler, st, tay); +		lib[ix] = delig; +		for (i = tay; i <= 40; i ++) lib[ix] = lib[ix] + ' '; +	} +	lib[46] = lib[45]; +	lib[45] = ' '; +	show_mouse(); +	do { +		choi = 0; +		icm = 0; +		co = 0; +		lig = 0; +		do { +			icm = succ(integer, icm); +			putxy(co, lig); +			if (s.teauto[icm] == '*') +				if (te[icm])  writetp(lib[icm], 1); +				else writetp(lib[icm], 0); +			if (icm == 23)  { +				lig = 0; +				co = 320; +			} else lig = lig + 8; +		} while (!(icm == 42)); +		putxy(320, 176); +		writetp(lib[46], 0); +		tou = '\0'; +		do { +			mov_mouse(f, tou); +			/*     if keypressed then read(kbd,tou);*/ +			read_pos_mouse(x, y, c); +			x = x * (3 - res); +			if (x > 319)  cx = 41; +			else cx = 1; +			cy = succ(integer, (cardinal)y >> 3);                  /* 0-199 => 1-25 */ +			if ((cy > 23) || ((cx == 41) && (set::of(range(20, 22), eos).has(cy)))) { +				if (choi != 0) { +					lig = ((choi - 1) % 23) << 3; +					if (choi > 23)  co = 320; +					else co = 0; +					putxy(co, lig); +					if (te[choi])  writetp(lib[choi], 0); +					else writetp(lib[choi], 1); +					te[choi] = ! te[choi]; +					choi = 0; +				} +			} else { +				ix = cy; +				if (cx == 41)  ix = ix + 23; +				if (ix != choi) { +					if (choi != 0) { +						lig = ((choi - 1) % 23) << 3; +						if (choi > 23)  co = 320; +						else co = 0; +						putxy(co, lig); +						if (te[choi])  writetp(lib[choi], 0); +						else writetp(lib[choi], 1); +						te[choi] = ! te[choi]; +					} +					if ((s.teauto[ix] == '*') || (ix == 46)) { +						lig = ((ix - 1) % 23) << 3; +						if (ix > 23)  co = 320; +						else co = 0; +						putxy(co, lig); +						if (te[ix])  writetp(lib[ix], 0); +						else writetp(lib[ix], 1); +						te[ix] = ! te[ix]; +						choi = ix; +					} else choi = 0; +				} +			} +		} while (!((tou == '\15') || (((c != 0) || clic) && (choi != 0)))); +		clic = false; +		if (choi != 46) { +			ix = choi - 1; +			if (col) { +				col = false; +				s.mlieu = 15; +				if (iouv > 0)  max = 8; +				else max = 4; +				haz = hazard(1, max); +				if (haz == 2)  suj = 129; +				else { +					suj = 138; +					s.conf = s.conf + (3 * (s.conf / 10)); +				} +			} else if (nbrep[caff - 69] < nbrepm[caff - 69]) { +				suj = tabdon[arep + (ix << 3) + (caff - 70)]; +				s.conf = s.conf + tabdon[arcf + ix]; +				nbrep[caff - 69] = nbrep[caff - 69] + 1; +			} else { +				s.conf = s.conf + 3; +				suj = 139; +			} +			hide_mouse(); +			hirs(); +			premtet(); +			sparl(0, suj); +			show_mouse(); +			if ((suj == 84) || (suj == 86)) { +				s.pourc[5] = '*'; +				s.teauto[7] = '*'; +			} +			if ((suj == 106) || (suj == 108) || (suj == 94)) { +				for (ix = 29; ix <= 31; ix ++) s.teauto[ix] = '*'; +				s.pourc[7] = '*'; +			} +			if (suj == 70) { +				s.pourc[8] = '*'; +				s.teauto[32] = '*'; +			} +			hide_mouse(); +			hirs(); +			show_mouse(); +		} +	} while (!((choi == 46) || (suj == 138))); +	if (col) { +		s.conf = s.conf + (3 * (s.conf / 10)); +		hide_mouse(); +		hirs(); +		premtet(); +		sparl(0, 138); +		show_mouse(); +		col = false; +		s.mlieu = 15; +	} +	ctrm = 0; +	hide_mouse(); +	hirs(); +	dessine_rouleau(); +	show_mouse(); +	affper(ipers); +	tinke(); +	pendule(); +	affrep(); +	/* chech;*/ +	tmlieu(s.mlieu); +	clsf3();  } -/* overlay */ void tsentir() -{ - crep= 119; - if (caff< 26)  - { -  if (! syn)  ecr3("sentir"); -  tfleche(); -  if (! (anyone) && ! (iesc))  -   if (caff== 16)  crep= 153; - } - else - if (caff== 123)  crep= 110; - num= 0; +/* overlay */ void tsentir() { +	crep = 119; +	if (caff < 26) { +		if (! syn)  ecr3("sentir"); +		tfleche(); +		if (!(anyone) && !(iesc)) +			if (caff == 16)  crep = 153; +	} else if (caff == 123)  crep = 110; +	num = 0;  } -/* overlay */ void tgratter() -{ - crep= 155; - if (caff< 27)  - { -  if (! syn)  ecr3("gratter"); -  tfleche(); - } - num= 0; +/* overlay */ void tgratter() { +	crep = 155; +	if (caff < 27) { +		if (! syn)  ecr3("gratter"); +		tfleche(); +	} +	num = 0;  }  /* NIVEAU 2 */ -/* overlay */ void tmaj1()             /* Le jeu est termin‚ !!! */ -{ - arret= true; - tlu(13,152); - maivid(); - clsf1(); - clsf2(); - clsf3(); - repon(9,1509); - tkey1(false); - hide_mouse(); - caff= 70; - taffich(); - hirs(); - premtet(); - sparl(0,141); - show_mouse(); - clsf1(); - repon(9,1509); - repon(2,142); - tkey1(false); - caff= 32; - afdes(0); - repon(6,34); - repon(2,35); - musique(0); - tkey1(false); - messint(2036); - tkey1(false); - inzon(); +/* overlay */ void tmaj1() {           /* Le jeu est termin‚ !!! */ +	arret = true; +	tlu(13, 152); +	maivid(); +	clsf1(); +	clsf2(); +	clsf3(); +	repon(9, 1509); +	tkey1(false); +	hide_mouse(); +	caff = 70; +	taffich(); +	hirs(); +	premtet(); +	sparl(0, 141); +	show_mouse(); +	clsf1(); +	repon(9, 1509); +	repon(2, 142); +	tkey1(false); +	caff = 32; +	afdes(0); +	repon(6, 34); +	repon(2, 35); +	musique(0); +	tkey1(false); +	messint(2036); +	tkey1(false); +	inzon();  } -/* overlay */ void tencore()           /* Perdu !!! */ -{ - integer quel; +/* overlay */ void tencore() {         /* Perdu !!! */ +	integer quel; - clsf2(); - musique(0); - tkey1(false); - maivid(); - inzon(); - dprog(); - vh= 10; - vm= 0; - vj= 0; - min= 0; - heu= 10; - jou= 0; - repon(2,180); - quel= do_alert(stouinon,1); - arret= (quel!=1); +	clsf2(); +	musique(0); +	tkey1(false); +	maivid(); +	inzon(); +	dprog(); +	vh = 10; +	vm = 0; +	vj = 0; +	min = 0; +	heu = 10; +	jou = 0; +	repon(2, 180); +	quel = do_alert(stouinon, 1); +	arret = (quel != 1);  } diff --git a/engines/mortevielle/alert.h b/engines/mortevielle/alert.h index c3a45fe529..d059fc3ef3 100644 --- a/engines/mortevielle/alert.h +++ b/engines/mortevielle/alert.h @@ -2,213 +2,196 @@  const integer nligne = 7; -const matrix<1,2,1,3,integer> coord -      = {{ {{150, 72, 103}}, -         {{143, 107, 183}} }}; - - - -static void decod(str255 s, integer& nbc,integer& nbl,integer& col, str255& c, str30& cs) -    { -          integer i,k; -          boolean v; - -      val(s[2],nbc,i); -      c= ""; -      nbl= 0; i= 5; k= 0; -      v=true; col=0; - -      while (s[i]!=']')  -        { -          c=c+s[i]; -          if ((s[i]=='|') || (s[i+1]==']'))  -             { -               if (k>col)  col=k; -               k= 0; -               nbl=nbl+1; -             } -           else if (s[i]!=' ')  v=false; -          i=i+1; -          k=k+1; -        } -      if (v)  { -                  c=""; -                  col=20; -                } -           else { -                  c=c+']'; -                  col=col+6; -                } -      i=i+1; -      cs=copy(s,i,30); -      if (res==2)  col= col*6; -               else col= col*10; -    } - - - -static void posit(integer ji, integer& coldep, integer& esp) -   { -     putxy(coldep + (40+esp) *pred(integer,ji),98); -   } - - - -static void fait_boite(integer lidep,integer nli,integer tx) -   { -         integer x,y,xx,yy; - -     if (tx>640)  tx=640; -     x= 320- ((cardinal)tx >> 1); -     y=pred(integer,lidep) << 3; -     xx=x+ tx; -     yy=y + (nli << 3); -     box(15,gd,x,y,xx,yy,255); -     box(0,gd,x,y+2,xx,y+4,255); -     box(0,gd,x,yy-4,xx,yy-2,255); -   } - - - -static void fait_choix(str30 c, integer& coldep, integer& nbcase, array<1,2,varying_string<3> >& s, integer& esp) -   { -         integer i,l,x; -         char ch; - -     i=1; -     x=coldep; -     for( l=1; l <= nbcase; l ++) -       { -         s[l]=""; -         do { -           i=i+1; -           ch=c[i]; -           s[l]=s[l]+ch; -         } while (!(c[i+1]==']')); -         i=i+2; -         while (length(s[l])<3)  s[l]=s[l]+' '; -         putxy(x,98); -         writeg(string(' ')+s[l]+' ',0); -         x= x+esp+40; -       } -   } - -              integer do_alert(str255 str_, integer n) -{ -       integer coldep,esp,i,l,nbcase,quoi,ix; -       str255 st, chaine; -       matrix<1,2,1,2,integer> limit; -       char c,dumi; -       array<1,2,varying_string<3> > s; -       integer cx,cy,cd,nbcol,nblig; -       boolean touch,newaff,test,test1,test2,test3,dum; -       str30 cas; - - -  /*debug('** do_alert **');*/ -  integer do_alert_result; -  hide_mouse(); -  while (keypressed())  input >> kbd >> dumi; -  clic=false; -  decod(str_,nbcase,nblig,nbcol,chaine,cas); -  sauvecr(50,succ(integer,nligne) << 4); - -  i=0; -  if (chaine=="")  -    { -      fait_boite(10,5,nbcol); -    } -   else -    { -      fait_boite(8,7,nbcol); -      i=0; -      ywhere=70; -      do { -        cx= 320; -        st= ""; -        while (! (set::of('\174','\135', eos).has(chaine[i+1])))  -          { -            i=i+1; -            st=st+chaine[i]; -            if (res==2)  cx=cx-3; -                     else cx=cx-5; -          } -        putxy(cx,ywhere); -        ywhere=ywhere+6; -        writeg(st,4); -        i=i+1; -      } while (!(chaine[i]==']')); -    } -  if (nbcase==1)  esp= nbcol- 40; -              else esp= (cardinal)(nbcol-nbcase*40) >> 1; -  coldep=320-((cardinal)nbcol >> 1)+((cardinal)esp >> 1); -  fait_choix(cas, coldep, nbcase, s, esp); -  limit[1][1]=((cardinal)(coldep) >> 1)*res; -  limit[1][2]=limit[1][1]+40; -  if (nbcase==1)  -     { -       limit[2][1]=limit[2][2]; -     } -   else -     { -       limit[2][1]=((cardinal)(320+((cardinal)esp >> 1)) >> 1)*res; -       limit[2][2]=(limit[2][1])+40; -     } -  show_mouse(); -  quoi=0; -  dum=false; -  do { -    dumi='\377'; -    mov_mouse(dum,dumi); -    cx= x_s; -    cy= y_s; -    test=(cy>95) && (cy<105); -    newaff=false; -    if (test)  -     { -       test1=(cx>limit[1][1]) && (cx<limit[1][2]); -       test2=test1; -       if (nbcase>1)  test2= test1 || ((cx>limit[2][1]) && (cx<limit[2][2])); -       if (test2)  -        { -          newaff=true; -          if (test1)  ix=1; -                   else ix=2; -          if (ix!=quoi)   -           { -             hide_mouse(); -             if (quoi!=0)  -              { -                posit(quoi, coldep, esp); -                writeg(string(' ')+s[quoi]+' ',0); -              } -             posit(ix, coldep, esp); -             writeg(string(' ')+s[ix]+' ',1); -             quoi=ix; -             show_mouse(); -           } -        } -     } -    if ((quoi!=0) && ! newaff)  -     { -       hide_mouse(); -       posit(quoi, coldep, esp); -       writeg(string(' ')+s[quoi]+' ',0); -       quoi=0; -       show_mouse(); -     } -     test3=(cy>95) && (cy<105) && (((cx>limit[1][1]) && (cx<limit[1][2])) -                                   || ((cx>limit[2][1]) && (cx<limit[2][2]))); -  } while (!clic); -  clic=false; -  hide_mouse(); -  if (! test3)  { -                  quoi=n; -                  posit(n, coldep, esp); -                  writeg(string(' ')+s[n]+' ',1); -                } -  charecr(50,succ(integer,nligne) << 4); -  show_mouse(); -  do_alert_result=quoi; -  return do_alert_result; +const matrix<1, 2, 1, 3, integer> coord += {{ {{150, 72, 103}}, +		{{143, 107, 183}} +	} +}; + + + +static void decod(str255 s, integer &nbc, integer &nbl, integer &col, str255 &c, str30 &cs) { +	integer i, k; +	boolean v; + +	val(s[2], nbc, i); +	c = ""; +	nbl = 0; +	i = 5; +	k = 0; +	v = true; +	col = 0; + +	while (s[i] != ']') { +		c = c + s[i]; +		if ((s[i] == '|') || (s[i + 1] == ']')) { +			if (k > col)  col = k; +			k = 0; +			nbl = nbl + 1; +		} else if (s[i] != ' ')  v = false; +		i = i + 1; +		k = k + 1; +	} +	if (v)  { +		c = ""; +		col = 20; +	} else { +		c = c + ']'; +		col = col + 6; +	} +	i = i + 1; +	cs = copy(s, i, 30); +	if (res == 2)  col = col * 6; +	else col = col * 10; +} + + + +static void posit(integer ji, integer &coldep, integer &esp) { +	putxy(coldep + (40 + esp) *pred(integer, ji), 98); +} + + + +static void fait_boite(integer lidep, integer nli, integer tx) { +	integer x, y, xx, yy; + +	if (tx > 640)  tx = 640; +	x = 320 - ((cardinal)tx >> 1); +	y = pred(integer, lidep) << 3; +	xx = x + tx; +	yy = y + (nli << 3); +	box(15, gd, x, y, xx, yy, 255); +	box(0, gd, x, y + 2, xx, y + 4, 255); +	box(0, gd, x, yy - 4, xx, yy - 2, 255); +} + + + +static void fait_choix(str30 c, integer &coldep, integer &nbcase, array<1, 2, varying_string<3> > &s, integer &esp) { +	integer i, l, x; +	char ch; + +	i = 1; +	x = coldep; +	for (l = 1; l <= nbcase; l ++) { +		s[l] = ""; +		do { +			i = i + 1; +			ch = c[i]; +			s[l] = s[l] + ch; +		} while (!(c[i + 1] == ']')); +		i = i + 2; +		while (length(s[l]) < 3)  s[l] = s[l] + ' '; +		putxy(x, 98); +		writeg(string(' ') + s[l] + ' ', 0); +		x = x + esp + 40; +	} +} + +integer do_alert(str255 str_, integer n) { +	integer coldep, esp, i, l, nbcase, quoi, ix; +	str255 st, chaine; +	matrix<1, 2, 1, 2, integer> limit; +	char c, dumi; +	array<1, 2, varying_string<3> > s; +	integer cx, cy, cd, nbcol, nblig; +	boolean touch, newaff, test, test1, test2, test3, dum; +	str30 cas; + + +	/*debug('** do_alert **');*/ +	integer do_alert_result; +	hide_mouse(); +	while (keypressed())  input >> kbd >> dumi; +	clic = false; +	decod(str_, nbcase, nblig, nbcol, chaine, cas); +	sauvecr(50, succ(integer, nligne) << 4); + +	i = 0; +	if (chaine == "") { +		fait_boite(10, 5, nbcol); +	} else { +		fait_boite(8, 7, nbcol); +		i = 0; +		ywhere = 70; +		do { +			cx = 320; +			st = ""; +			while (!(set::of('\174', '\135', eos).has(chaine[i + 1]))) { +				i = i + 1; +				st = st + chaine[i]; +				if (res == 2)  cx = cx - 3; +				else cx = cx - 5; +			} +			putxy(cx, ywhere); +			ywhere = ywhere + 6; +			writeg(st, 4); +			i = i + 1; +		} while (!(chaine[i] == ']')); +	} +	if (nbcase == 1)  esp = nbcol - 40; +	else esp = (cardinal)(nbcol - nbcase * 40) >> 1; +	coldep = 320 - ((cardinal)nbcol >> 1) + ((cardinal)esp >> 1); +	fait_choix(cas, coldep, nbcase, s, esp); +	limit[1][1] = ((cardinal)(coldep) >> 1) * res; +	limit[1][2] = limit[1][1] + 40; +	if (nbcase == 1) { +		limit[2][1] = limit[2][2]; +	} else { +		limit[2][1] = ((cardinal)(320 + ((cardinal)esp >> 1)) >> 1) * res; +		limit[2][2] = (limit[2][1]) + 40; +	} +	show_mouse(); +	quoi = 0; +	dum = false; +	do { +		dumi = '\377'; +		mov_mouse(dum, dumi); +		cx = x_s; +		cy = y_s; +		test = (cy > 95) && (cy < 105); +		newaff = false; +		if (test) { +			test1 = (cx > limit[1][1]) && (cx < limit[1][2]); +			test2 = test1; +			if (nbcase > 1)  test2 = test1 || ((cx > limit[2][1]) && (cx < limit[2][2])); +			if (test2) { +				newaff = true; +				if (test1)  ix = 1; +				else ix = 2; +				if (ix != quoi) { +					hide_mouse(); +					if (quoi != 0) { +						posit(quoi, coldep, esp); +						writeg(string(' ') + s[quoi] + ' ', 0); +					} +					posit(ix, coldep, esp); +					writeg(string(' ') + s[ix] + ' ', 1); +					quoi = ix; +					show_mouse(); +				} +			} +		} +		if ((quoi != 0) && ! newaff) { +			hide_mouse(); +			posit(quoi, coldep, esp); +			writeg(string(' ') + s[quoi] + ' ', 0); +			quoi = 0; +			show_mouse(); +		} +		test3 = (cy > 95) && (cy < 105) && (((cx > limit[1][1]) && (cx < limit[1][2])) +		                                    || ((cx > limit[2][1]) && (cx < limit[2][2]))); +	} while (!clic); +	clic = false; +	hide_mouse(); +	if (! test3)  { +		quoi = n; +		posit(n, coldep, esp); +		writeg(string(' ') + s[n] + ' ', 1); +	} +	charecr(50, succ(integer, nligne) << 4); +	show_mouse(); +	do_alert_result = quoi; +	return do_alert_result;  } diff --git a/engines/mortevielle/boite.h b/engines/mortevielle/boite.h index 0819490bfc..4120f7337f 100644 --- a/engines/mortevielle/boite.h +++ b/engines/mortevielle/boite.h @@ -1,30 +1,29 @@ -void boite(integer x,integer y,integer dx,integer dy,integer coul) - { -       integer i; -      integer xi,yi,xo,yo; +void boite(integer x, integer y, integer dx, integer dy, integer coul) { +	integer i; +	integer xi, yi, xo, yo; -   /* debug('boite'); */ -   hide_mouse(); -   if (res==1)  -      { -        x= (cardinal)x >> 1; -        dx= (cardinal)dx >> 1; -      } -   xi=x; yi=y; xo=x; yo=y; -   for( i=0; i <= dx+dy; i ++) -      { -        putpix(gd,xi,yi,coul); -        if (xi==x+dx)  { -                          if (gd!=cga)  putpix(gd,pred(integer,xi),yi,coul); -                          yi=succ(integer,yi); -                        } -                   else xi=succ(integer,xi); -        putpix(gd,xo,yo,coul); -        if (yo==y+dy)  xo=succ(integer,xo); -                   else { -                          if (gd!=cga)  putpix(gd,succ(integer,xo),yo,coul); -                          yo=succ(integer,yo); -                        } -      } -   show_mouse(); - } +	/* debug('boite'); */ +	hide_mouse(); +	if (res == 1) { +		x = (cardinal)x >> 1; +		dx = (cardinal)dx >> 1; +	} +	xi = x; +	yi = y; +	xo = x; +	yo = y; +	for (i = 0; i <= dx + dy; i ++) { +		putpix(gd, xi, yi, coul); +		if (xi == x + dx)  { +			if (gd != cga)  putpix(gd, pred(integer, xi), yi, coul); +			yi = succ(integer, yi); +		} else xi = succ(integer, xi); +		putpix(gd, xo, yo, coul); +		if (yo == y + dy)  xo = succ(integer, xo); +		else { +			if (gd != cga)  putpix(gd, succ(integer, xo), yo, coul); +			yo = succ(integer, yo); +		} +	} +	show_mouse(); +} diff --git a/engines/mortevielle/disk.h b/engines/mortevielle/disk.h index 28a2dbe6a5..517d408c87 100644 --- a/engines/mortevielle/disk.h +++ b/engines/mortevielle/disk.h @@ -1,78 +1,72 @@ -void dem1() -{ -      untyped_file f; -      integer k; +void dem1() { +	untyped_file f; +	integer k; -  /* -- demande de disk 1 -- */ -  assign(f,"mort.005"); -  /*$i-*/ -  k=ioresult; -  reset(f); -  while (ioresult!=0)  -   { -    show_mouse(); -    k= do_alert(al_mess,1); -    hide_mouse(); -    reset(f); -   } -  close(f); +	/* -- demande de disk 1 -- */ +	assign(f, "mort.005"); +	/*$i-*/ +	k = ioresult; +	reset(f); +	while (ioresult != 0) { +		show_mouse(); +		k = do_alert(al_mess, 1); +		hide_mouse(); +		reset(f); +	} +	close(f);  } -void takesav(integer n) -{ -        untyped_file f; -        integer i; -       varying_string<10> st; +void takesav(integer n) { +	untyped_file f; +	integer i; +	varying_string<10> st; -  dem1(); -  /* -- chargement du fichier 'sauve#n.mor' -- */ -  st= string("sav")+chr(n+48)+".mor"; -  assign(f,st); -  reset(f,497); -  blockread(f,s1,1); -  if (ioresult!=0)  -     { -       i=do_alert(err_mess,1); -       exit(0); -     } -  s=s1; -  for( i=0; i <= 389; i ++) tabdon[i+acha]=bufcha[i]; -  close(f); +	dem1(); +	/* -- chargement du fichier 'sauve#n.mor' -- */ +	st = string("sav") + chr(n + 48) + ".mor"; +	assign(f, st); +	reset(f, 497); +	blockread(f, s1, 1); +	if (ioresult != 0) { +		i = do_alert(err_mess, 1); +		exit(0); +	} +	s = s1; +	for (i = 0; i <= 389; i ++) tabdon[i + acha] = bufcha[i]; +	close(f);  } -void ld_game(integer n) -{ -  hide_mouse(); -  maivid(); -  takesav(n); -  /* -- disquette 2 -- */ -  dem2(); -  /* -- mises en place -- */ -  theure(); -  dprog(); -  antegame(); -  show_mouse(); +void ld_game(integer n) { +	hide_mouse(); +	maivid(); +	takesav(n); +	/* -- disquette 2 -- */ +	dem2(); +	/* -- mises en place -- */ +	theure(); +	dprog(); +	antegame(); +	show_mouse();  } -void sv_game(integer n) -{ -        untyped_file f; -        integer i; +void sv_game(integer n) { +	untyped_file f; +	integer i; -  hide_mouse(); -  tmaj3(); -  dem1(); -  /* -- sauvegarde du fichier 'sauve#n.mor' -- */ -  for( i=0; i <= 389; i ++) bufcha[i]=tabdon[i+acha]; -  s1=s; -  if (s1.mlieu== 26)  s1.mlieu= 15; -  assign(f,string("sav")+chr(n+48)+".mor"); -  rewrite(f,497); -  blockwrite(f,s1,1); -  close(f); -  dem2(); -  show_mouse(); +	hide_mouse(); +	tmaj3(); +	dem1(); +	/* -- sauvegarde du fichier 'sauve#n.mor' -- */ +	for (i = 0; i <= 389; i ++) bufcha[i] = tabdon[i + acha]; +	s1 = s; +	if (s1.mlieu == 26)  s1.mlieu = 15; +	assign(f, string("sav") + chr(n + 48) + ".mor"); +	rewrite(f, 497); +	blockwrite(f, s1, 1); +	close(f); +	dem2(); +	show_mouse();  } diff --git a/engines/mortevielle/droite.h b/engines/mortevielle/droite.h index 7dd029e2ec..8d254a4afc 100644 --- a/engines/mortevielle/droite.h +++ b/engines/mortevielle/droite.h @@ -1,35 +1,34 @@ -void droite( integer x, integer y, integer xx, integer yy, integer coul ) -   { -         integer step,i; -         real a,b; -         real xr,yr,xro,yro; +void droite(integer x, integer y, integer xx, integer yy, integer coul) { +	integer step, i; +	real a, b; +	real xr, yr, xro, yro; -     xr=x; yr=y; xro=xx; yro=yy; -     /*writeln(le_file,'(',x:4,',',y:4,') ==> (',xx:4,',',yy:4,')');*/ -     if (abs(y-yy) > abs(x-xx))  -        { -          a= (real)((x-xx)) / (y-yy); -          b= ( yr*xro - yro*xr) / (y-yy); -          i=y; -          if (y>yy)  step=-1; -                  else step=1; -          do { -            putpix(gd, trunc(a*i+b), i, coul); -            i=i+step; -          } while (!(i==yy)); -          /*writeln(le_file,'X == ',a:3:3,' * Y + ',b:3:3);*/ -        } -      else -        { -          a= (real)((y-yy)) / (x-xx); -          b= ((yro*xr) - (yr*xro)) / (x-xx); -          i=x; -          if (x>xx)  step=-1; -                  else step=1; -          do { -            putpix(gd,i, trunc(a*i+b), coul); -            i=i+step; -          } while (!(i==xx)); -          /*writeln(le_file,'Y == ',a:3:3,' * X + ',b:3:3);*/ -        } -   }
\ No newline at end of file +	xr = x; +	yr = y; +	xro = xx; +	yro = yy; +	/*writeln(le_file,'(',x:4,',',y:4,') ==> (',xx:4,',',yy:4,')');*/ +	if (abs(y - yy) > abs(x - xx)) { +		a = (real)((x - xx)) / (y - yy); +		b = (yr * xro - yro * xr) / (y - yy); +		i = y; +		if (y > yy)  step = -1; +		else step = 1; +		do { +			putpix(gd, trunc(a * i + b), i, coul); +			i = i + step; +		} while (!(i == yy)); +		/*writeln(le_file,'X == ',a:3:3,' * Y + ',b:3:3);*/ +	} else { +		a = (real)((y - yy)) / (x - xx); +		b = ((yro * xr) - (yr * xro)) / (x - xx); +		i = x; +		if (x > xx)  step = -1; +		else step = 1; +		do { +			putpix(gd, i, trunc(a * i + b), coul); +			i = i + step; +		} while (!(i == xx)); +		/*writeln(le_file,'Y == ',a:3:3,' * X + ',b:3:3);*/ +	} +}
\ No newline at end of file diff --git a/engines/mortevielle/keyboard.h b/engines/mortevielle/keyboard.h index 9f8423a41f..b450e074c1 100644 --- a/engines/mortevielle/keyboard.h +++ b/engines/mortevielle/keyboard.h @@ -1,59 +1,60 @@ -char readkey1() -  { -       char c; +char readkey1() { +	char c; -    char readkey1_result; -    input >> kbd >> c; -    readkey1_result= c; -    return readkey1_result; -  } +	char readkey1_result; +	input >> kbd >> c; +	readkey1_result = c; +	return readkey1_result; +} -integer testou() -  { -        char ch; +integer testou() { +	char ch; -    integer testou_result; -    input >> kbd >> ch; -    switch  (ch)  { -              case '\23' : sonoff= ! sonoff; break; -              case '\1': -              case '\3': -              case '\5'  : { -                      newgd= (cardinal)pred(integer,ord(ch)) >> 1; -                      testou_result= 61; -                      return testou_result; -                    } -                    break; -              case '\10'  : { -                      newgd= her; -                      testou_result= 61; -                      return testou_result; -                    } -                    break; -              case '\24' : { -                      newgd= tan; -                      testou_result= 61; -                      return testou_result; -                    } -                    break; -              case '\26' : if (set::of(1,2, eos).has(c_zzz))  -                       { -                         zzuul(adcfiec+161,0,1644); -                         c_zzz=succ(integer,c_zzz); -                         testou_result=61; -                         return testou_result; -                       } -                       break; -              case '\33' : if (keypressed())  input >> kbd >> ch; break; -      } -    testou_result=ord(ch); -    return testou_result; -  } +	integer testou_result; +	input >> kbd >> ch; +	switch (ch)  { +	case '\23' : +		sonoff = ! sonoff; +		break; +	case '\1': +	case '\3': +	case '\5'  : { +		newgd = (cardinal)pred(integer, ord(ch)) >> 1; +		testou_result = 61; +		return testou_result; +	} +	break; +	case '\10'  : { +		newgd = her; +		testou_result = 61; +		return testou_result; +	} +	break; +	case '\24' : { +		newgd = tan; +		testou_result = 61; +		return testou_result; +	} +	break; +	case '\26' : +		if (set::of(1, 2, eos).has(c_zzz)) { +			zzuul(adcfiec + 161, 0, 1644); +			c_zzz = succ(integer, c_zzz); +			testou_result = 61; +			return testou_result; +		} +		break; +	case '\33' : +		if (keypressed())  input >> kbd >> ch; +		break; +	} +	testou_result = ord(ch); +	return testou_result; +} -void teskbd() -  { -        integer dum; +void teskbd() { +	integer dum; -    if (keypressed())  dum=testou(); -  } +	if (keypressed())  dum = testou(); +} diff --git a/engines/mortevielle/level15.h b/engines/mortevielle/level15.h index be92e8dca2..2c9b8cdcf4 100644 --- a/engines/mortevielle/level15.h +++ b/engines/mortevielle/level15.h @@ -1,87 +1,80 @@  /* NIVEAU 15 */ -void copcha() -{ -      integer i; - -  i= acha; -  do { -    tabdon[i]=tabdon[i+390]; -    i=succ(integer,i); -  } while (!(i==acha +390)); +void copcha() { +	integer i; + +	i = acha; +	do { +		tabdon[i] = tabdon[i + 390]; +		i = succ(integer, i); +	} while (!(i == acha + 390));  } -boolean dans_rect( rectangle r ) -   { -         integer x, y, c; - -     boolean dans_rect_result; -     read_pos_mouse(x,y,c); -       if ((x>r.x1) && -          (x<r.x2) && -          (y>r.y1) && -          (y<r.y2))  dans_rect_result= true; -                 else dans_rect_result= false; -     return dans_rect_result; -   } - -void outbloc(integer n, pattern p, t_nhom pal) -   { -         integer i,j,ad; - -     ad=n*404+0xd700; -       { -         memw[0x6000+ad]= p.tax; -         memw[0x6000+ad+2]= p.tay; -         ad=ad+4; -         for( i=1; i <= p.tax; i ++) -           for( j=1; j <= p.tay; j ++) -             mem[0x6000+ad+pred(integer,j)*p.tax+pred(integer,i)]= pal[n].hom[p.des[i][j]]; -       } -   } - - -void writepal(integer n) - { -         integer i; -       t_nhom pal; - - -   switch (gd) { -           case tan: -           case ega: -           case ams : for( i=1; i <= 16; i ++) -                   { -                     mem[0x7000+2*i]= tabpal[n][i].x; -                     mem[0x7000+succ(integer,2*i)]= tabpal[n][i].y; -                   } -                   break; -           case cga : { -                   pal= palcga[n].a; -                   if (n<89)  palette(palcga[n].p); -                   for( i=0; i <= 15; i ++) outbloc(i, tpt[pal[i].n],pal); -                 } -                 break; -   } - } - - -void pictout(integer seg,integer dep,integer x,integer y) -   { -     decomp(seg,dep); -     if (gd==her)  -        { -          mem[0x7000+2]=0; -          mem[0x7000+32]=15; -        } -     if ((caff!=51) && (memw[0x7000+0x4138]>0x100))  memw[0x7000+0x4138]=0x100; -     afff(gd,seg,dep,x,y); -   } - -void putxy(integer x,integer y) -{ -  xwhere=x; -  ywhere=y; +boolean dans_rect(rectangle r) { +	integer x, y, c; + +	boolean dans_rect_result; +	read_pos_mouse(x, y, c); +	if ((x > r.x1) && +	        (x < r.x2) && +	        (y > r.y1) && +	        (y < r.y2))  dans_rect_result = true; +	else dans_rect_result = false; +	return dans_rect_result; +} + +void outbloc(integer n, pattern p, t_nhom pal) { +	integer i, j, ad; + +	ad = n * 404 + 0xd700; +	{ +		memw[0x6000 + ad] = p.tax; +		memw[0x6000 + ad + 2] = p.tay; +		ad = ad + 4; +		for (i = 1; i <= p.tax; i ++) +			for (j = 1; j <= p.tay; j ++) +				mem[0x6000 + ad + pred(integer, j)*p.tax + pred(integer, i)] = pal[n].hom[p.des[i][j]]; +	} +} + + +void writepal(integer n) { +	integer i; +	t_nhom pal; + + +	switch (gd) { +	case tan: +	case ega: +	case ams : +		for (i = 1; i <= 16; i ++) { +			mem[0x7000 + 2 * i] = tabpal[n][i].x; +			mem[0x7000 + succ(integer, 2 * i)] = tabpal[n][i].y; +		} +		break; +	case cga : { +		pal = palcga[n].a; +		if (n < 89)  palette(palcga[n].p); +		for (i = 0; i <= 15; i ++) outbloc(i, tpt[pal[i].n], pal); +	} +	break; +	} +} + + +void pictout(integer seg, integer dep, integer x, integer y) { +	decomp(seg, dep); +	if (gd == her) { +		mem[0x7000 + 2] = 0; +		mem[0x7000 + 32] = 15; +	} +	if ((caff != 51) && (memw[0x7000 + 0x4138] > 0x100))  memw[0x7000 + 0x4138] = 0x100; +	afff(gd, seg, dep, x, y); +} + +void putxy(integer x, integer y) { +	xwhere = x; +	ywhere = y;  }  /*  function calad(x,y:integer):integer; @@ -89,19 +82,17 @@ function calad(x,y:integer):integer;       calad:=pred(x)+320*pred(y)     end;    */ -void sauvecr(integer y,integer dy) -  { -    hide_mouse(); -    s_sauv(gd,y,dy); -    show_mouse(); -  } - -void charecr(integer y,integer dy) -  { -    hide_mouse(); -    s_char(gd,y,dy); -    show_mouse(); -  } +void sauvecr(integer y, integer dy) { +	hide_mouse(); +	s_sauv(gd, y, dy); +	show_mouse(); +} + +void charecr(integer y, integer dy) { +	hide_mouse(); +	s_char(gd, y, dy); +	show_mouse(); +}  /*  function peek(ad:integer):integer;  begin @@ -125,54 +116,52 @@ begin  end;    */ -void adzon() -   { -         untyped_file f; -         file<byte> g; -         byte a; -         integer i; - -     assign(f,"don.mor"); -     reset(f,256); -     blockread(f,tabdon,7); -     close(f); -     assign(f,"bmor.mor"); -     reset(f,1916); -     blockread(f,tabdon[fleche],1); -     /*i:=fleche; -     repeat -       read(g,a); -       tabdon[i]:=a; -       i:=succ(i); -     until i=fleche + 1916;*/ -     close(f); -     assign(f,"dec.mor"); -     reset(f,1664); -     blockread(f,mem[0x73a2+0],1); -     /*i:=0; -     repeat -       read(g,a); -       mem[$73A2:i]:=a; -       i:=succ(i); -     until eof(g);*/ -     close(f); -   } - -integer animof (integer ouf,integer num) -   { -         integer nani, aux; - -     integer animof_result; -     nani= mem[adani+1]; -     aux= num; -     if (ouf!=1)  aux= aux+nani; -     animof_result=(nani << 2) + 2+swap(memw[adani+ (aux << 1)]); -     /*aux:= nani shl 2 + 2; -     if ouf=1 then aux:= aux+ swap(memw[adani: num shl 1]) -              else aux:= aux+ swap(memw[adani: (nani+num) shl 1]); -     animof:=aux;*/ -     return animof_result; -   } +void adzon() { +	untyped_file f; +	file<byte> g; +	byte a; +	integer i; + +	assign(f, "don.mor"); +	reset(f, 256); +	blockread(f, tabdon, 7); +	close(f); +	assign(f, "bmor.mor"); +	reset(f, 1916); +	blockread(f, tabdon[fleche], 1); +	/*i:=fleche; +	repeat +	  read(g,a); +	  tabdon[i]:=a; +	  i:=succ(i); +	until i=fleche + 1916;*/ +	close(f); +	assign(f, "dec.mor"); +	reset(f, 1664); +	blockread(f, mem[0x73a2 + 0], 1); +	/*i:=0; +	repeat +	  read(g,a); +	  mem[$73A2:i]:=a; +	  i:=succ(i); +	until eof(g);*/ +	close(f); +} + +integer animof(integer ouf, integer num) { +	integer nani, aux; + +	integer animof_result; +	nani = mem[adani + 1]; +	aux = num; +	if (ouf != 1)  aux = aux + nani; +	animof_result = (nani << 2) + 2 + swap(memw[adani + (aux << 1)]); +	/*aux:= nani shl 2 + 2; +	if ouf=1 then aux:= aux+ swap(memw[adani: num shl 1]) +	         else aux:= aux+ swap(memw[adani: (nani+num) shl 1]); +	animof:=aux;*/ +	return animof_result; +}  /*procedure affgd(offs,dep,x,y:integer);  begin diff --git a/engines/mortevielle/menu.h b/engines/mortevielle/menu.h index 9256182280..691ef7c852 100644 --- a/engines/mortevielle/menu.h +++ b/engines/mortevielle/menu.h @@ -1,306 +1,334 @@  /* NIVEAU 14*/ -/* overlay */ void menut(integer no, str30 nom) -   { -         byte h,l; -         str30 s; +/* overlay */ void menut(integer no, str30 nom) { +	byte h, l; +	str30 s; -     /* debug('menut'); */ -     h=hi(no); -     l=lo(no); -     s=nom; -     if (! tesok)  -        { -          clrscr; -          exit(0); -        } -     while (length(s)<30)  s=s+' '; -     switch (h) { -           case invent  :  if (l!=7)  inv[l]= string(' ')+s; break; -           case depla   :  dep[l]= s; break; -           case action  :  act[l]= s; break; -           case saction :  self_[l]= s; break; -           case discut  :  dis[l]= s; break; -        } -   } +	/* debug('menut'); */ +	h = hi(no); +	l = lo(no); +	s = nom; +	if (! tesok) { +		clrscr; +		exit(0); +	} +	while (length(s) < 30)  s = s + ' '; +	switch (h) { +	case invent  : +		if (l != 7)  inv[l] = string(' ') + s; +		break; +	case depla   : +		dep[l] = s; +		break; +	case action  : +		act[l] = s; +		break; +	case saction : +		self_[l] = s; +		break; +	case discut  : +		dis[l] = s; +		break; +	} +} -/* overlay */ void menu_disable(integer no) -   { -         byte h,l; +/* overlay */ void menu_disable(integer no) { +	byte h, l; -     /* debug('menu_disable'); */ -     h=hi(no); -     l=lo(no); -     switch (h) { -           case invent : { -                 if (l>6)  { -                               inv[l][1]='<'; -                               inv[l][22]='>'; -                             } -                        else inv[l][1]='*'; -               } -               break; -           case depla : dep[l][1]='*'; break; -           case action : act[l][1]='*'; break; -           case saction : self_[l][1]='*'; break; -           case discut : dis[l][1]='*'; break; -        } -   } +	/* debug('menu_disable'); */ +	h = hi(no); +	l = lo(no); +	switch (h) { +	case invent : { +		if (l > 6)  { +			inv[l][1] = '<'; +			inv[l][22] = '>'; +		} else inv[l][1] = '*'; +	} +	break; +	case depla : +		dep[l][1] = '*'; +		break; +	case action : +		act[l][1] = '*'; +		break; +	case saction : +		self_[l][1] = '*'; +		break; +	case discut : +		dis[l][1] = '*'; +		break; +	} +} -/* overlay */ void menu_enable(integer no) -   { -         byte h,l; +/* overlay */ void menu_enable(integer no) { +	byte h, l; -     /* debug('menu_disable'); */ -     h=hi(no); -     l=lo(no); -     switch (h) { -           case invent : { -                      inv[l][1]=' '; -                      inv[l][22]=' '; -                    } -                    break; -           case depla : dep[l][1]=' '; break; -           case action : act[l][1]=' '; break; -           case saction : { -                       self_[l][1]=' '; -                       self_[l][1]=' '; -                     } -                     break; -           case discut : dis[l][1]=' '; break; -        } -   } +	/* debug('menu_disable'); */ +	h = hi(no); +	l = lo(no); +	switch (h) { +	case invent : { +		inv[l][1] = ' '; +		inv[l][22] = ' '; +	} +	break; +	case depla : +		dep[l][1] = ' '; +		break; +	case action : +		act[l][1] = ' '; +		break; +	case saction : { +		self_[l][1] = ' '; +		self_[l][1] = ' '; +	} +	break; +	case discut : +		dis[l][1] = ' '; +		break; +	} +} -void menu_aff() -   { -         integer ind_tabl,k,col; -         char c; -         integer pt,x,y,color,msk, -         num_letr; +void menu_aff() { +	integer ind_tabl, k, col; +	char c; +	integer pt, x, y, color, msk, +	        num_letr; -     /* debug('menu_aff'); */ -     hide_mouse(); -     /*if not tesok then -        begin -          clrscr; -          halt; -        end;*/ -     box( 7, gd, 0,0, 639,10, 255); -     col= 28*res; -     if (gd == cga)  color=1; -                 else color=9; -     num_letr=0; -     do {       /* lettre par lettre */ -       num_letr= num_letr +1; -       ind_tabl=0; -       y= 1; -       do {      /* colonne par colonne */ -         k=0; -         x= col; -         do {     /* ligne par ligne */ -           msk=0x80; -           for( pt=0; pt <= 7; pt ++) -            { -              if ((lettres[num_letr][ind_tabl] & msk)!=0)  -                 { -                   putpix(gd,x+1,y+1,0); -                   putpix(gd,x,y+1,0); -                   putpix(gd,x,y,color); -                 } -              msk= (cardinal)msk >> 1; -              x=x +1; -            } -           ind_tabl=succ(integer,ind_tabl); -           k=succ(integer,k); -         } while (!(k==3)); -         y=y+1; -       } while (!(y==9)); -       col=col+48*res; -     } while (!(num_letr==6)); -     show_mouse(); -   } +	/* debug('menu_aff'); */ +	hide_mouse(); +	/*if not tesok then +	   begin +	     clrscr; +	     halt; +	   end;*/ +	box(7, gd, 0, 0, 639, 10, 255); +	col = 28 * res; +	if (gd == cga)  color = 1; +	else color = 9; +	num_letr = 0; +	do {       /* lettre par lettre */ +		num_letr = num_letr + 1; +		ind_tabl = 0; +		y = 1; +		do {      /* colonne par colonne */ +			k = 0; +			x = col; +			do {     /* ligne par ligne */ +				msk = 0x80; +				for (pt = 0; pt <= 7; pt ++) { +					if ((lettres[num_letr][ind_tabl] & msk) != 0) { +						putpix(gd, x + 1, y + 1, 0); +						putpix(gd, x, y + 1, 0); +						putpix(gd, x, y, color); +					} +					msk = (cardinal)msk >> 1; +					x = x + 1; +				} +				ind_tabl = succ(integer, ind_tabl); +				k = succ(integer, k); +			} while (!(k == 3)); +			y = y + 1; +		} while (!(y == 9)); +		col = col + 48 * res; +	} while (!(num_letr == 6)); +	show_mouse(); +} -void draw_menu() -  { -    /* debug('draw_menu'); */ -    menu_aff(); -    active_menu=true; -    msg4=no_choice; -    msg3=no_choice; -    choisi=false; -    clic=false; -    test0=false; -  } +void draw_menu() { +	/* debug('draw_menu'); */ +	menu_aff(); +	active_menu = true; +	msg4 = no_choice; +	msg3 = no_choice; +	choisi = false; +	clic = false; +	test0 = false; +} -void invers(integer ix) -   { -         varying_string<23> s; +void invers(integer ix) { +	varying_string<23> s; -     /* debug('invers'); */ -     if (msg4==no_choice)  return; -     putxy(don[msg3][1] << 3,succ(void,lo(msg4)) << 3); -     switch (msg3) { -                  case 1 : s= inv[lo(msg4)]; break; -                  case 2 : s= dep[lo(msg4)]; break; -                  case 3 : s= act[lo(msg4)]; break; -                  case 4 : s= self_[lo(msg4)]; break; -                  case 5 : s= dis[lo(msg4)]; break; -                  case 6 : s= fic[lo(msg4)]; break; -                  case 7 : s= fic[1]+' '+chr(48+lo(msg4)); break; -                  case 8 : if (lo(msg4)==1)  s=recom; -                              else s= fic[2]+' '+chr(47+lo(msg4)); -                              break; -          } -     if ((s[1]!='*') && (s[1]!='<'))  writeg(s,ix); -                                    else msg4=no_choice; -   } +	/* debug('invers'); */ +	if (msg4 == no_choice)  return; +	putxy(don[msg3][1] << 3, succ(void, lo(msg4)) << 3); +	switch (msg3) { +	case 1 : +		s = inv[lo(msg4)]; +		break; +	case 2 : +		s = dep[lo(msg4)]; +		break; +	case 3 : +		s = act[lo(msg4)]; +		break; +	case 4 : +		s = self_[lo(msg4)]; +		break; +	case 5 : +		s = dis[lo(msg4)]; +		break; +	case 6 : +		s = fic[lo(msg4)]; +		break; +	case 7 : +		s = fic[1] + ' ' + chr(48 + lo(msg4)); +		break; +	case 8 : +		if (lo(msg4) == 1)  s = recom; +		else s = fic[2] + ' ' + chr(47 + lo(msg4)); +		break; +	} +	if ((s[1] != '*') && (s[1] != '<'))  writeg(s, ix); +	else msg4 = no_choice; +} -void util(integer x,integer y) -   { -         integer ymx, dxcar, xmn, xmx, ix; +void util(integer x, integer y) { +	integer ymx, dxcar, xmn, xmx, ix; -     /* debug('util'); */ -     ymx= (don[msg3][4] << 3)+16; -     dxcar= don[msg3][3]; -     xmn= (don[msg3][1] << 2)*res; -     if (res==1)  ix=5; else ix=3; -     xmx= dxcar*ix*res+ xmn+ 2; -     if ((x>xmn) && (x<xmx) && (y<ymx) && (y>15))  -             { -               ix= pred(integer,(cardinal)y >> 3)+ (msg3 << 8); -               if (ix!=msg4)  -                 { -                   invers(1); -                   msg4=ix; -                   invers(0); -                 } -             } -           else if (msg4!=no_choice)  -                 { -                   invers(1); -                   msg4=no_choice; -                 } -   } +	/* debug('util'); */ +	ymx = (don[msg3][4] << 3) + 16; +	dxcar = don[msg3][3]; +	xmn = (don[msg3][1] << 2) * res; +	if (res == 1)  ix = 5; +	else ix = 3; +	xmx = dxcar * ix * res + xmn + 2; +	if ((x > xmn) && (x < xmx) && (y < ymx) && (y > 15)) { +		ix = pred(integer, (cardinal)y >> 3) + (msg3 << 8); +		if (ix != msg4) { +			invers(1); +			msg4 = ix; +			invers(0); +		} +	} else if (msg4 != no_choice) { +		invers(1); +		msg4 = no_choice; +	} +} -void menu_down( integer ii) -   { -         integer cx, xcc; -         integer xco, nb_lig; +void menu_down(integer ii) { +	integer cx, xcc; +	integer xco, nb_lig; -     /* debug('menu_down'); */ -     xco=don[ii][1]; -     nb_lig= don[ii][4]; -     hide_mouse(); -     sauvecr(10,succ(byte,don[ii][2]) << 1); -     xco= xco << 3; -     if (res==1)  cx=10; else cx=6; -     xcc= xco+ (don[ii][3]*cx)+6; -     box(15, gd, xco,12, xcc, 10 + (don[ii][2] << 1), 255); -     box(0, gd, xcc, 12, xcc+4, 10 + (don[ii][2] << 1),255); -     box(0,gd,xco, 8 + (don[ii][2] << 1), xcc+4, 12 + (don[ii][2] << 1),255); -     putxy(xco,16); -     cx=0; -     do { -       cx= succ(integer,cx); -       switch (ii) { -             case 1 : if (inv[cx][1]!= '*')  writeg(inv[cx],4); break; -             case 2 : if (dep[cx][1]!= '*')  writeg(dep[cx],4); break; -             case 3 : if (act[cx][1]!= '*')  writeg(act[cx],4); break; -             case 4 : if (self_[cx][1]!='*')  writeg(self_[cx],4); break; -             case 5 : if (dis[cx][1]!= '*')  writeg(dis[cx],4); break; -             case 6 : writeg(fic[cx],4); break; -             case 7 : writeg(fic[1]+' '+chr(48+cx),4); break; -             case 8 : if (cx==1)  writeg( recom,4); -                         else writeg(fic[2]+' '+chr(47+cx),4); -                         break; -          } -       putxy(xco,ywhere+8); -     } while (!(cx==nb_lig)); -     test0=true; -     show_mouse(); -   } +	/* debug('menu_down'); */ +	xco = don[ii][1]; +	nb_lig = don[ii][4]; +	hide_mouse(); +	sauvecr(10, succ(byte, don[ii][2]) << 1); +	xco = xco << 3; +	if (res == 1)  cx = 10; +	else cx = 6; +	xcc = xco + (don[ii][3] * cx) + 6; +	box(15, gd, xco, 12, xcc, 10 + (don[ii][2] << 1), 255); +	box(0, gd, xcc, 12, xcc + 4, 10 + (don[ii][2] << 1), 255); +	box(0, gd, xco, 8 + (don[ii][2] << 1), xcc + 4, 12 + (don[ii][2] << 1), 255); +	putxy(xco, 16); +	cx = 0; +	do { +		cx = succ(integer, cx); +		switch (ii) { +		case 1 : +			if (inv[cx][1] != '*')  writeg(inv[cx], 4); +			break; +		case 2 : +			if (dep[cx][1] != '*')  writeg(dep[cx], 4); +			break; +		case 3 : +			if (act[cx][1] != '*')  writeg(act[cx], 4); +			break; +		case 4 : +			if (self_[cx][1] != '*')  writeg(self_[cx], 4); +			break; +		case 5 : +			if (dis[cx][1] != '*')  writeg(dis[cx], 4); +			break; +		case 6 : +			writeg(fic[cx], 4); +			break; +		case 7 : +			writeg(fic[1] + ' ' + chr(48 + cx), 4); +			break; +		case 8 : +			if (cx == 1)  writeg(recom, 4); +			else writeg(fic[2] + ' ' + chr(47 + cx), 4); +			break; +		} +		putxy(xco, ywhere + 8); +	} while (!(cx == nb_lig)); +	test0 = true; +	show_mouse(); +} -void menu_up(integer xx) -   { -     /* debug('menu_up'); */ -     if (test0)  -       { -         charecr(10,succ(byte,don[xx][2]) << 1); -         test0=false; -       } -   } +void menu_up(integer xx) { +	/* debug('menu_up'); */ +	if (test0) { +		charecr(10, succ(byte, don[xx][2]) << 1); +		test0 = false; +	} +} -void erase_menu() -  { -    /* debug('erase_menu'); */ -    active_menu=false; -    clic=false; -    menu_up(msg3); -  } +void erase_menu() { +	/* debug('erase_menu'); */ +	active_menu = false; +	clic = false; +	menu_up(msg3); +} -void mdn() -   { -           integer x,y,c,a,ix; -           boolean tes; +void mdn() { +	integer x, y, c, a, ix; +	boolean tes; -     /* debug('mdn'); */ -     if (! active_menu)  return; -     x=x_s; y=y_s; -     if (! clic)  -      { -        if ((x==xprec) && -           (y==yprec))  return; -        else { -               xprec=x; -               yprec=y; -             } -        tes=(y<11) && ((set::of(range(28*res,28*res+24),range(76*res,76*res+24), eos).has(x)) -                         || ((x>124*res) && (x<124*res+24)) -                         || ((x>172*res) && (x<172*res+24)) -                         || ((x>220*res) && (x<220*res+24)) -                         || ((x>268*res) && (x<268*res+24))); -        if (tes)  -           { -             if (x<76*res)  ix=invent; -              else if (x<124*res)  ix=depla; -               else if (x<172*res)  ix=action; -                else if (x<220*res)  ix=saction; -                 else if (x<268*res)  ix=discut; -                  else ix= fichier; -             if ((ix!=msg3) || (! test0))  -              if (! ((ix==fichier) &&  (set::of(sauve, charge, eos).has(msg3))))  -                 { -                   menu_up(msg3); -                   menu_down(ix); -                   msg3=ix; -                   msg4=no_choice; -                 } -          } -         else    /* Not in the MenuTitle line */ -          { -            if ((y>11) && (test0))  util(x,y); -          } -      } -     else          /* il y a eu 'clic' */ -     if ((msg3==fichier) && (msg4!=no_choice))  -       { -         clic=false; -         menu_up(msg3); -         if (lo(msg4)==1)  msg3=7; -                   else msg3=8; -         menu_down(msg3); -       } -     else    /*  il y a eu clic sur un autre menu  */ -       { -         choisi=(test0) && (msg4!=no_choice); -         menu_up(msg3); -         msg[4]=msg4; -         msg[3]=msg3; -         msg3=no_choice; -         msg4=no_choice; -         clic=false; -       } -   } +	/* debug('mdn'); */ +	if (! active_menu)  return; +	x = x_s; +	y = y_s; +	if (! clic) { +		if ((x == xprec) && +		        (y == yprec))  return; +		else { +			xprec = x; +			yprec = y; +		} +		tes = (y < 11) && ((set::of(range(28 * res, 28 * res + 24), range(76 * res, 76 * res + 24), eos).has(x)) +		                   || ((x > 124 * res) && (x < 124 * res + 24)) +		                   || ((x > 172 * res) && (x < 172 * res + 24)) +		                   || ((x > 220 * res) && (x < 220 * res + 24)) +		                   || ((x > 268 * res) && (x < 268 * res + 24))); +		if (tes) { +			if (x < 76 * res)  ix = invent; +			else if (x < 124 * res)  ix = depla; +			else if (x < 172 * res)  ix = action; +			else if (x < 220 * res)  ix = saction; +			else if (x < 268 * res)  ix = discut; +			else ix = fichier; +			if ((ix != msg3) || (! test0)) +				if (!((ix == fichier) && (set::of(sauve, charge, eos).has(msg3)))) { +					menu_up(msg3); +					menu_down(ix); +					msg3 = ix; +					msg4 = no_choice; +				} +		} else { /* Not in the MenuTitle line */ +			if ((y > 11) && (test0))  util(x, y); +		} +	} else        /* il y a eu 'clic' */ +		if ((msg3 == fichier) && (msg4 != no_choice)) { +			clic = false; +			menu_up(msg3); +			if (lo(msg4) == 1)  msg3 = 7; +			else msg3 = 8; +			menu_down(msg3); +		} else { /*  il y a eu clic sur un autre menu  */ +			choisi = (test0) && (msg4 != no_choice); +			menu_up(msg3); +			msg[4] = msg4; +			msg[3] = msg3; +			msg3 = no_choice; +			msg4 = no_choice; +			clic = false; +		} +} diff --git a/engines/mortevielle/mor.h b/engines/mortevielle/mor.h index a4fe1e1b6b..fd4e2f5ffa 100644 --- a/engines/mortevielle/mor.h +++ b/engines/mortevielle/mor.h @@ -2,1455 +2,1309 @@  const char m1[] = "quelqu'un entre, parait ‚tonn‚ mais ne dit rien"; -void testfi() -   { -     if (ioresult!= 0)  -        { -          caff= do_alert(err_mess,1); -          exit(0); -        } -   } - - -integer readclock() -{ -               registres r; -         integer s, m, h; - -/* debug('readclock');*/ -  integer readclock_result; -  r.ax = 0x2c00; -  intr(0x21,r); -  { -    h=(cardinal)r.cx >> 8; -    m=r.cx % 256; -    s=(cardinal)r.dx >> 8; -  } -  m= m * 60; -  h= h* 3600; -  readclock_result= h+ m+ s; -  return readclock_result; -} - -void modif(integer& nu) -{ - /* debug('modif'); */ - if (nu== 26)  nu= 25; - if ((nu> 29) && (nu< 36))  nu= nu- 4; - if ((nu> 69) && (nu< 78))  nu= nu- 37; - if ((nu> 99) && (nu< 194))  nu= nu- 59; - if ((nu> 996) && (nu< 1000))  nu= nu- 862; - if ((nu> 1500) && (nu< 1507))  nu= nu- 1363; - if ((nu> 1507) && (nu< 1513))  nu= nu- 1364; - if ((nu> 1999) && (nu< 2002))  nu= nu- 1851; - if (nu== 2010)  nu= 151; - if ((nu> 2011) && (nu< 2025))  nu= nu- 1860; - if (nu== 2026)  nu= 165; - if ((nu> 2029) && (nu< 2037))  nu= nu- 1864; - if ((nu> 3000) && (nu< 3005))  nu= nu- 2828; - if (nu== 4100)  nu= 177; - if (nu== 4150)  nu= 178; - if ((nu> 4151) && (nu< 4156))  nu= nu- 3973; - if (nu== 4157)  nu= 183; - if ((nu== 4160) || (nu== 4161))  nu= nu- 3976; -} - - -void dessine(integer ad, integer x, integer y) -{ -  /* debug('dessine'); */ -  hide_mouse(); -  writepal(numpal); -  pictout(ad,0,x,y); -  show_mouse(); -} - -void dessine_rouleau() -{ -  /* debug('dessine_rouleau'); */ -  writepal(89); -  if (gd==her)  -     { -       mem[0x7000+14]=15; -     } -  hide_mouse(); -  pictout(0x73a2,0,0,0); -  show_mouse(); -} - - -void text_color(integer c) -{ -  color_txt= c; +void testfi() { +	if (ioresult != 0) { +		caff = do_alert(err_mess, 1); +		exit(0); +	} +} + + +integer readclock() { +	registres r; +	integer s, m, h; + +	/* debug('readclock');*/ +	integer readclock_result; +	r.ax = 0x2c00; +	intr(0x21, r); +	{ +		h = (cardinal)r.cx >> 8; +		m = r.cx % 256; +		s = (cardinal)r.dx >> 8; +	} +	m = m * 60; +	h = h * 3600; +	readclock_result = h + m + s; +	return readclock_result; +} + +void modif(integer &nu) { +	/* debug('modif'); */ +	if (nu == 26)  nu = 25; +	if ((nu > 29) && (nu < 36))  nu = nu - 4; +	if ((nu > 69) && (nu < 78))  nu = nu - 37; +	if ((nu > 99) && (nu < 194))  nu = nu - 59; +	if ((nu > 996) && (nu < 1000))  nu = nu - 862; +	if ((nu > 1500) && (nu < 1507))  nu = nu - 1363; +	if ((nu > 1507) && (nu < 1513))  nu = nu - 1364; +	if ((nu > 1999) && (nu < 2002))  nu = nu - 1851; +	if (nu == 2010)  nu = 151; +	if ((nu > 2011) && (nu < 2025))  nu = nu - 1860; +	if (nu == 2026)  nu = 165; +	if ((nu > 2029) && (nu < 2037))  nu = nu - 1864; +	if ((nu > 3000) && (nu < 3005))  nu = nu - 2828; +	if (nu == 4100)  nu = 177; +	if (nu == 4150)  nu = 178; +	if ((nu > 4151) && (nu < 4156))  nu = nu - 3973; +	if (nu == 4157)  nu = 183; +	if ((nu == 4160) || (nu == 4161))  nu = nu - 3976; +} + + +void dessine(integer ad, integer x, integer y) { +	/* debug('dessine'); */ +	hide_mouse(); +	writepal(numpal); +	pictout(ad, 0, x, y); +	show_mouse(); +} + +void dessine_rouleau() { +	/* debug('dessine_rouleau'); */ +	writepal(89); +	if (gd == her) { +		mem[0x7000 + 14] = 15; +	} +	hide_mouse(); +	pictout(0x73a2, 0, 0, 0); +	show_mouse(); +} + + +void text_color(integer c) { +	color_txt = c;  }  /* NIVEAU 13 */ -void text1(integer x,integer y,integer nb,integer m) -{ -       phrase st; -       integer tay; -       integer co; - - -  /* debug('text'); */ -  if (res==1)  co=10; else co=6; -  deline(m,st,tay); -  if ((y==182) && (tay*co>nb*6))  y=176; -  afftex(st,x,y,nb,20,color_txt); -} - -void initouv() - { -      integer cx; - -   /* debug('initouv'); */ -   for( cx= 1; cx <= 7; cx ++) touv[cx]= chr(0); - } - -void ecrf1() -{ -  boite(0, 11, 512, 163, 15);           /* grand dessin */ -} - -void clsf1() -{ -      integer i,j; - - /* debug('clsf1'); */ - hide_mouse(); - box(0,gd, 0,11, 514,175, 255); -/* if Gd=ams then port[$3DD]:=15; - case Gd of -         ams, -         cga : begin -                 for j:=0 to 63 do -                    begin -                      for i:=6 to 86 do -                         begin -                           mem[$B800:i*80+j]:=0; -                           mem[$Ba00:i*80+j]:=0; -                         end; -                      mem[$b800:6960+j]:=0; -                      mem[$ba00:400+j]:=0; -                    end; -               end; -         ega : begin -                 port[$3C4]:= 2; -                 port[$3C5]:= 15; -                 port[$3CE]:= 8; -                 port[$3CF]:= 255; -                 for j:=0 to 63 do -                    for i:=11 to 174 do -                       mem[$A000:i*80+j]:=0; -               end; -         tan : begin -                 for j:=0 to 128 do -                    begin -                      for i:=3 to 43 do -                         begin -                           mem[$B800:i*160+j]:=0; -                           mem[$Ba00:i*160+j]:=0; -                           mem[$bc00:i*160+j]:=0; -                           if i<>43 then mem[$be00:i*160+j]:=0; -                         end; -                      mem[$be00:320+j]:=0; -                    end; -               end; - end; - droite(256*res,11,256*res,175,0);*/ - show_mouse(); -} - -void clsf2() -{ -       integer i,j; - - /* debug('clsf2'); */ - hide_mouse(); - if (f2_all)  -    { -      box(0,gd,1,176,633,199,255); -      boite(0,175,634,24,15); -      f2_all=false; -    } -  else -    { -      box(0,gd,1,176,633,190,255); -      boite(0,175,634,15,15); -    } - show_mouse(); -} - -void ecrf2() -{ -  /* debug('ecrf2'); */ -  text_color(5); -  /*boite(0,175,630,15,15);*/ -} - -void ecr2(str255 str_) -{ -      integer tab; -      integer tlig; - - /* debug('ecr2 : '+str_);*/ - if (res==1)  tab=10; else tab=6; - putxy(8,177); - tlig=59+pred(integer,res)*36; - if (length(str_)<tlig)  writeg(str_,5); -  else if (length(str_)<(tlig << 1))  -          { -            putxy(8,176); -            writeg(copy(str_,1,pred(integer,tlig)),5); -            putxy(8,182); -            writeg(copy(str_,tlig,tlig << 1),5); -          } -   else { -          f2_all=true; -          clsf2(); -          putxy(8,176); -          writeg(copy(str_,1,pred(integer,tlig)),5); -          putxy(8,182); -          writeg(copy(str_,tlig,pred(integer,tlig << 1)),5); -          putxy(8,190); -          writeg(copy(str_,tlig << 1,tlig*3),5); -        } -} - -void clsf3() -{ -       integer i,j; - -  /* debug('clsf3'); */ -  hide_mouse(); -  box(0,gd,1,192,633,199,255); -  boite(0,191,634,8,15); -  show_mouse(); -} - -void ecr3(str255 text) -{ - /* debug('ecr3 : '+text);*/ - clsf3(); - putxy(8,192); - writeg(text,5); -} - -void ecrf6() -{ -  /* debug('ecrf6'); */ -  text_color(5); -  boite(62, 33, 363, 80, 15); -} - -void ecrf7() -{ - text_color(4); -/* draw_mode(2); - text_height(4*res); - text_style(normal);*/ -} - -void clsf10() -{ -      integer co,cod; -      varying_string<8> st; - - /* debug('clsf10'); */ - hide_mouse(); - if (res==1)  -    { -      co=634; -      cod=534; -    } -  else -    { -      co=600; -      cod=544; -    } - box(15,gd, cod, 93, co, 98, 255); - if (s.conf< 33)  st="Cool"; -               else - if (s.conf< 66)  st=" Lourde "; -               else - if (s.conf> 65)  st="Malsaine"; - if (res==1)  co=10; else co=6; - co= 574-((cardinal)co*length(st) >> 1); - putxy(co,92); - writeg(st,4); - if (res==1)  co=620; else co=584; - box(15,gd, 560, 24, co, 86, 255); -/* rempli(69,12,32,5,255);*/ - show_mouse(); -} - -   void stop() -     { -       clrscr; -       hirs(); -       gd=ams; -       hirs(); -       exit(0); -     } - -void paint_rect(integer x, integer y, integer dx, integer dy) -   { -         integer co; - -     /* debug('paint_rect'); */ -     if (gd==cga)  co= 3; -               else co=11; -     box(co,gd,x,y,x+dx,y+dy,255); -   } - -integer hazard(integer min,integer max) -   { -         integer ha1; -         real ha2; - -     /* debug('hazard'); */ -     integer hazard_result; -     ha2= Random(); -     ha1= trunc(ha2*(max-min)); -     hazard_result= min+ ha1; -     return hazard_result; -   } - -void calch(integer& j,integer& h,integer& m) -{ - integer th,nh; - -/* debug('calch');*/ - nh= readclock(); - th= jh+ ((nh- mh) / t); - m= ((th % 2)+ vm)* 30; - h= ((cardinal)th >> 1)+ vh; - if (m== 60)  - { -  m= 0; -  h= h+ 1; - } - j= (h / 24)+ vj; - h= h- ((j- vj)* 24); -} - -void conv(integer x, integer& y) -{ - integer cx; - - /* debug('conv'); */ - cx= 1; - y= 128; - while (cx< x)  - { -  y= (cardinal)y >> 1; -  cx= succ(integer,cx); - } +void text1(integer x, integer y, integer nb, integer m) { +	phrase st; +	integer tay; +	integer co; + + +	/* debug('text'); */ +	if (res == 1)  co = 10; +	else co = 6; +	deline(m, st, tay); +	if ((y == 182) && (tay * co > nb * 6))  y = 176; +	afftex(st, x, y, nb, 20, color_txt); +} + +void initouv() { +	integer cx; + +	/* debug('initouv'); */ +	for (cx = 1; cx <= 7; cx ++) touv[cx] = chr(0); +} + +void ecrf1() { +	boite(0, 11, 512, 163, 15);           /* grand dessin */ +} + +void clsf1() { +	integer i, j; + +	/* debug('clsf1'); */ +	hide_mouse(); +	box(0, gd, 0, 11, 514, 175, 255); +	/* if Gd=ams then port[$3DD]:=15; +	 case Gd of +	         ams, +	         cga : begin +	                 for j:=0 to 63 do +	                    begin +	                      for i:=6 to 86 do +	                         begin +	                           mem[$B800:i*80+j]:=0; +	                           mem[$Ba00:i*80+j]:=0; +	                         end; +	                      mem[$b800:6960+j]:=0; +	                      mem[$ba00:400+j]:=0; +	                    end; +	               end; +	         ega : begin +	                 port[$3C4]:= 2; +	                 port[$3C5]:= 15; +	                 port[$3CE]:= 8; +	                 port[$3CF]:= 255; +	                 for j:=0 to 63 do +	                    for i:=11 to 174 do +	                       mem[$A000:i*80+j]:=0; +	               end; +	         tan : begin +	                 for j:=0 to 128 do +	                    begin +	                      for i:=3 to 43 do +	                         begin +	                           mem[$B800:i*160+j]:=0; +	                           mem[$Ba00:i*160+j]:=0; +	                           mem[$bc00:i*160+j]:=0; +	                           if i<>43 then mem[$be00:i*160+j]:=0; +	                         end; +	                      mem[$be00:320+j]:=0; +	                    end; +	               end; +	 end; +	 droite(256*res,11,256*res,175,0);*/ +	show_mouse(); +} + +void clsf2() { +	integer i, j; + +	/* debug('clsf2'); */ +	hide_mouse(); +	if (f2_all) { +		box(0, gd, 1, 176, 633, 199, 255); +		boite(0, 175, 634, 24, 15); +		f2_all = false; +	} else { +		box(0, gd, 1, 176, 633, 190, 255); +		boite(0, 175, 634, 15, 15); +	} +	show_mouse(); +} + +void ecrf2() { +	/* debug('ecrf2'); */ +	text_color(5); +	/*boite(0,175,630,15,15);*/ +} + +void ecr2(str255 str_) { +	integer tab; +	integer tlig; + +	/* debug('ecr2 : '+str_);*/ +	if (res == 1)  tab = 10; +	else tab = 6; +	putxy(8, 177); +	tlig = 59 + pred(integer, res) * 36; +	if (length(str_) < tlig)  writeg(str_, 5); +	else if (length(str_) < (tlig << 1)) { +		putxy(8, 176); +		writeg(copy(str_, 1, pred(integer, tlig)), 5); +		putxy(8, 182); +		writeg(copy(str_, tlig, tlig << 1), 5); +	} else { +		f2_all = true; +		clsf2(); +		putxy(8, 176); +		writeg(copy(str_, 1, pred(integer, tlig)), 5); +		putxy(8, 182); +		writeg(copy(str_, tlig, pred(integer, tlig << 1)), 5); +		putxy(8, 190); +		writeg(copy(str_, tlig << 1, tlig * 3), 5); +	} +} + +void clsf3() { +	integer i, j; + +	/* debug('clsf3'); */ +	hide_mouse(); +	box(0, gd, 1, 192, 633, 199, 255); +	boite(0, 191, 634, 8, 15); +	show_mouse(); +} + +void ecr3(str255 text) { +	/* debug('ecr3 : '+text);*/ +	clsf3(); +	putxy(8, 192); +	writeg(text, 5); +} + +void ecrf6() { +	/* debug('ecrf6'); */ +	text_color(5); +	boite(62, 33, 363, 80, 15); +} + +void ecrf7() { +	text_color(4); +	/* draw_mode(2); +	 text_height(4*res); +	 text_style(normal);*/ +} + +void clsf10() { +	integer co, cod; +	varying_string<8> st; + +	/* debug('clsf10'); */ +	hide_mouse(); +	if (res == 1) { +		co = 634; +		cod = 534; +	} else { +		co = 600; +		cod = 544; +	} +	box(15, gd, cod, 93, co, 98, 255); +	if (s.conf < 33)  st = "Cool"; +	else if (s.conf < 66)  st = " Lourde "; +	else if (s.conf > 65)  st = "Malsaine"; +	if (res == 1)  co = 10; +	else co = 6; +	co = 574 - ((cardinal)co * length(st) >> 1); +	putxy(co, 92); +	writeg(st, 4); +	if (res == 1)  co = 620; +	else co = 584; +	box(15, gd, 560, 24, co, 86, 255); +	/* rempli(69,12,32,5,255);*/ +	show_mouse(); +} + +void stop() { +	clrscr; +	hirs(); +	gd = ams; +	hirs(); +	exit(0); +} + +void paint_rect(integer x, integer y, integer dx, integer dy) { +	integer co; + +	/* debug('paint_rect'); */ +	if (gd == cga)  co = 3; +	else co = 11; +	box(co, gd, x, y, x + dx, y + dy, 255); +} + +integer hazard(integer min, integer max) { +	integer ha1; +	real ha2; + +	/* debug('hazard'); */ +	integer hazard_result; +	ha2 = Random(); +	ha1 = trunc(ha2 * (max - min)); +	hazard_result = min + ha1; +	return hazard_result; +} + +void calch(integer &j, integer &h, integer &m) { +	integer th, nh; + +	/* debug('calch');*/ +	nh = readclock(); +	th = jh + ((nh - mh) / t); +	m = ((th % 2) + vm) * 30; +	h = ((cardinal)th >> 1) + vh; +	if (m == 60) { +		m = 0; +		h = h + 1; +	} +	j = (h / 24) + vj; +	h = h - ((j - vj) * 24); +} + +void conv(integer x, integer &y) { +	integer cx; + +	/* debug('conv'); */ +	cx = 1; +	y = 128; +	while (cx < x) { +		y = (cardinal)y >> 1; +		cx = succ(integer, cx); +	}  }  /* NIVEAU 12 */ -void okpas() -{ -  tesok=true; -} - -void modobj(integer m) -{ - phrase str_; - str30 strp; - integer i,tay; - - /* debug('modobj'); */ - strp=' '; - if (m!= 500)  -    { -      deline(m- 501+ c_st41,str_,tay); -      strp= delig; -    } - menut( invt[8], strp); - menu_disable( invt[8]); -} - -void modobj2(integer m,boolean t1,boolean t2) -{ - phrase str_; - str30 strp; - integer i,tay; - - /* debug('modobj'); */ -  strp=' '; - if (t1 || t2)  okpas(); -             else tesok=false;; - if (m!= 500)  -    { -      deline(m- 501+ c_st41,str_,tay); -      strp= delig; -    } - menut( invt[8], strp); - menu_disable( invt[8]); -} - - -void repon(integer f,integer m) -{ - str255 str_; - varying_string<40> str1; - phrase st; - text1 fic; - integer i, xco, dx, caspe, tay; - - /* debug('repon fenetre nø'+chr(f+48));*/ - if ((m> 499) && (m< 563))  - { -  deline( m-501+c_st41,st,tay); -  if (tay>((58+pred(integer,res)*37) << 1))  f2_all= true; -                                 else f2_all= false; -  clsf2(); -  afftex(st,8,176,85,3,5); - } - else - { -  modif(m); -  if (f== 8)  f= 2; -  if (f== 1)  f= 6; -  if (f== 2)  -  { -   clsf2(); -   ecrf2(); -   text1(8, 182, 103, m); -   if ((m== 68) || (m== 69))  s.teauto[40]= '*'; -   if ((m== 104) && (caff== 14))  -   { -    s.teauto[36]= '*'; -    if (s.teauto[39]== '*')  -    { -     s.pourc[3]= '*'; -     s.teauto[38]= '*'; -    } -   } -  } -  if (set::of(6,9, eos).has(f))  -  { -   deline(m,st,tay); -   if (f==6)  i=4; -          else i=5; -   afftex(st,80,40,60,25,i); -   if (m== 180)  s.pourc[6]= '*'; -   if (m== 179)  s.pourc[10]= '*'; -  } -  if (f== 7)            /* messint */ -  { -   ecrf7(); -   deline(m,st,tay); -   if (res==1)  -      { -        xco=252-tay*5; -        caspe= 100; -        dx= 80; -      } -    else -      { -        xco=252-tay*3; -        caspe= 144; -        dx=50; -      } -   if (tay<40)  afftex(st,xco,86,dx,3,5); -             else afftex(st,caspe,86,dx,3,5); -  } - } -} - -void f3f8() -{ -      integer co; - -  if (res==1)  co=107; else co=64; -  putxy(3,44); -  writeg(f3,5); -  ywhere= 51; -  writeg(f8,5); -  boite(0,42,co,16,7); -} - -void t5(integer cx) -{ - /* debug('t5'); */ - if (cx== 10)  blo= false; - if (cx!= 1)  - { -  bh1= false; -  bf1= false; - } - if (cx!= 2)  bh2= false; - if (cx!= 4)  - { -  bh4= false; -  bf4= false; - } - if (cx!= 5)  bh5= false; - if (cx!= 6)  bh6= false; - if (cx!= 8)  bh8= false; - if (cx!= 3)  bt3= false; - if (cx!= 7)  bt7= false; - if (cx!= 9)  bh9= false; -} - -void affper(integer per) -{ - integer cx; - - /* debug('affper'); */ - for( cx= 1; cx <= 8; cx ++) menu_disable( disc[cx]); - clsf10(); - if ((per & 128)== 128)  - { -   putxy(560,24); -   writeg("LEO",4); -   menu_enable( disc[1]); - } - if ((per & 64)== 64)  - { -  putxy(560, 32); -  writeg("PAT",4); -  menu_enable( disc[2]); - } - if ((per & 32)== 32)  - { -  putxy(560, 40); -  writeg("GUY",4); -  menu_enable( disc[3]); - } - if ((per & 16)== 16)  - { -  putxy(560,48); -  writeg("EVA",4); -  menu_enable( disc[4]); - } - if ((per & 8)== 8)  - { -  putxy(560,56); -  writeg("BOB",4); -  menu_enable( disc[5]); - } - if ((per & 4)== 4)  - { -  putxy(560, 64); -  writeg("LUC",4); -  menu_enable( disc[6]); - } - if ((per & 2)== 2)  - { -  putxy(560, 72); -  writeg("IDA",4); -  menu_enable( disc[7]); - } - if ((per & 1)== 1)  - { -  putxy(560, 80); -  writeg("MAX",4); -  menu_enable( disc[8]); - } - ipers= per; -} - -/* overlay */ void choix(integer min,integer max, integer& per) -{ - boolean i; - integer haz,cx,cy,cz; - long_integer per2,cz2; - - /* debug('o0 choix'); */ - haz= hazard(min,max); - if (haz> 4)  - { -  haz= 8- haz; -  i= true; - } - else i= false; - cx= 0; - per= 0; - while (cx< haz)  - { -  cy= hazard(1,8); -  conv(cy,cz); -  if ((per & cz)!= cz)  -  { -   cx= cx+ 1; -   per= (per | cz); -  } - } - if (i)  per= 255- per; - i= false; -} - -/* overlay */ void cpl1(integer& p) -{ - integer j,h,m; - - /* debug('o0 cpl1'); */ - calch(j,h,m); - if ((h> 7) || (h< 11))  p= 25; - if ((h> 10) && (h< 14))  p= 35; - if ((h> 13) && (h< 16))  p= 50; - if ((h> 15) && (h< 18))  p= 5; - if ((h> 17) && (h< 22))  p= 35; - if ((h> 21) && (h< 24))  p= 50; - if ((h>= 0) && (h< 8))  p= 70; - mdn(); -} - -/* overlay */ void cpl2(integer& p) -{ - integer j,h,m; - - /* debug('o0 cpl2'); */ - calch(j,h,m); - if ((h> 7) && (h< 11))  p= -2; - if (h== 11)  p= 100; - if ((h> 11) && (h< 23))  p= 10; - if (h== 23)  p= 20; - if ((h>= 0) && (h< 8))  p= 50; -} - -/* overlay */ void cpl3(integer& p) -{ - integer j,h,m; - - /* debug('o0 cpl3'); */ - calch(j,h,m); - if (((h> 8) && (h< 10)) || ((h> 19) && (h< 24)))  p= 34; - if (((h> 9) && (h< 20)) || ((h>= 0) && (h< 9)))  p= 0; -} - -/* overlay */ void cpl5(integer& p) -{ - integer j,h,m; - - /* debug('o0 cpl5'); */ - calch(j,h,m); - if ((h> 6) && (h< 10))  p= 0; - if (h== 10)  p= 100; - if ((h> 10) && (h< 24))  p= 15; - if ((h>= 0) && (h< 7))  p= 50; -} - -/* overlay */ void cpl6(integer& p) -{ - integer j,h,m; - - /* debug('o0 cpl6'); */ - calch(j,h,m); - if (((h> 7) && (h< 13)) || ((h> 17) && (h< 20)))  p= -2; - if (((h> 12) && (h< 17)) || ((h> 19) && (h< 24)))  p= 35; - if (h== 17)  p= 100; - if ((h>= 0) && (h< 8))  p= 60; -} - -void person() -{ - const char m1[] = "Vous"; - const char m2[] = "ˆtes"; - const char m3[] = "SEUL"; - integer cf; - str255 str_; - - /* debug('person'); */ - for( cf= 1; cf <= 8; cf ++) menu_disable( disc[cf]); - clsf10(); - putxy(560, 30); - writeg(m1,4); - putxy(560, 50); - writeg(m2,4); - putxy(560, 70); - writeg(m3,4); - ipers= 0; -} - -void chlm(integer& per) -{ -  /* debug('chlm'); */ -  per= hazard(1,2); -  if (per== 2)  per= 128; -} - -void pendule() -{ - const matrix<1,2,1,12,integer> cv -    = {{{{ 5,  8, 10,  8,  5,  0, -5,  -8, -10,  -8,  -5,   0}}, -      {{-5, -3,  0,  3,  5,  6,  5,   3,   0,  -3,  -5,  -6}} }}; - const integer x = 580; - const integer y = 123; - const integer rg = 9; - integer h,co; - - - /* debug('pendule'); */ - hide_mouse(); - /*paint_rect(572,114,18,20); - paint_rect(577,114,6,20);*/ - paint_rect(570,118,20,10); - paint_rect(578,114,6,18); - if (set::of(cga,her, eos).has(gd))  co=0; else co=1; - if (min== 0)  droite(((cardinal)x >> 1)*res, y, ((cardinal)x >> 1)*res, (y- rg), co); -           else droite(((cardinal)x >> 1)*res, y, ((cardinal)x >> 1)*res, (y+ rg), co); - h= heu; - if (h> 12)  h= h- 12; - if (h== 0)  h= 12; - droite(((cardinal)x >> 1)*res, y, ((cardinal)(x+ cv[1][h]) >> 1)*res, y+ cv[2][h], co); - show_mouse(); - putxy( 568, 154); - if (heu> 11)  writeg( "PM ",1); -            else writeg( "AM ",1); - putxy( 550, 160); - if (set::of(range(0,8), eos).has(jou))  writeg(string(chr(jou+49))+"& jour",1); +void okpas() { +	tesok = true; +} + +void modobj(integer m) { +	phrase str_; +	str30 strp; +	integer i, tay; + +	/* debug('modobj'); */ +	strp = ' '; +	if (m != 500) { +		deline(m - 501 + c_st41, str_, tay); +		strp = delig; +	} +	menut(invt[8], strp); +	menu_disable(invt[8]); +} + +void modobj2(integer m, boolean t1, boolean t2) { +	phrase str_; +	str30 strp; +	integer i, tay; + +	/* debug('modobj'); */ +	strp = ' '; +	if (t1 || t2)  okpas(); +	else tesok = false;; +	if (m != 500) { +		deline(m - 501 + c_st41, str_, tay); +		strp = delig; +	} +	menut(invt[8], strp); +	menu_disable(invt[8]); +} + + +void repon(integer f, integer m) { +	str255 str_; +	varying_string<40> str1; +	phrase st; +	text1 fic; +	integer i, xco, dx, caspe, tay; + +	/* debug('repon fenetre nø'+chr(f+48));*/ +	if ((m > 499) && (m < 563)) { +		deline(m - 501 + c_st41, st, tay); +		if (tay > ((58 + pred(integer, res) * 37) << 1))  f2_all = true; +		else f2_all = false; +		clsf2(); +		afftex(st, 8, 176, 85, 3, 5); +	} else { +		modif(m); +		if (f == 8)  f = 2; +		if (f == 1)  f = 6; +		if (f == 2) { +			clsf2(); +			ecrf2(); +			text1(8, 182, 103, m); +			if ((m == 68) || (m == 69))  s.teauto[40] = '*'; +			if ((m == 104) && (caff == 14)) { +				s.teauto[36] = '*'; +				if (s.teauto[39] == '*') { +					s.pourc[3] = '*'; +					s.teauto[38] = '*'; +				} +			} +		} +		if (set::of(6, 9, eos).has(f)) { +			deline(m, st, tay); +			if (f == 6)  i = 4; +			else i = 5; +			afftex(st, 80, 40, 60, 25, i); +			if (m == 180)  s.pourc[6] = '*'; +			if (m == 179)  s.pourc[10] = '*'; +		} +		if (f == 7) {         /* messint */ +			ecrf7(); +			deline(m, st, tay); +			if (res == 1) { +				xco = 252 - tay * 5; +				caspe = 100; +				dx = 80; +			} else { +				xco = 252 - tay * 3; +				caspe = 144; +				dx = 50; +			} +			if (tay < 40)  afftex(st, xco, 86, dx, 3, 5); +			else afftex(st, caspe, 86, dx, 3, 5); +		} +	} +} + +void f3f8() { +	integer co; + +	if (res == 1)  co = 107; +	else co = 64; +	putxy(3, 44); +	writeg(f3, 5); +	ywhere = 51; +	writeg(f8, 5); +	boite(0, 42, co, 16, 7); +} + +void t5(integer cx) { +	/* debug('t5'); */ +	if (cx == 10)  blo = false; +	if (cx != 1) { +		bh1 = false; +		bf1 = false; +	} +	if (cx != 2)  bh2 = false; +	if (cx != 4) { +		bh4 = false; +		bf4 = false; +	} +	if (cx != 5)  bh5 = false; +	if (cx != 6)  bh6 = false; +	if (cx != 8)  bh8 = false; +	if (cx != 3)  bt3 = false; +	if (cx != 7)  bt7 = false; +	if (cx != 9)  bh9 = false; +} + +void affper(integer per) { +	integer cx; + +	/* debug('affper'); */ +	for (cx = 1; cx <= 8; cx ++) menu_disable(disc[cx]); +	clsf10(); +	if ((per & 128) == 128) { +		putxy(560, 24); +		writeg("LEO", 4); +		menu_enable(disc[1]); +	} +	if ((per & 64) == 64) { +		putxy(560, 32); +		writeg("PAT", 4); +		menu_enable(disc[2]); +	} +	if ((per & 32) == 32) { +		putxy(560, 40); +		writeg("GUY", 4); +		menu_enable(disc[3]); +	} +	if ((per & 16) == 16) { +		putxy(560, 48); +		writeg("EVA", 4); +		menu_enable(disc[4]); +	} +	if ((per & 8) == 8) { +		putxy(560, 56); +		writeg("BOB", 4); +		menu_enable(disc[5]); +	} +	if ((per & 4) == 4) { +		putxy(560, 64); +		writeg("LUC", 4); +		menu_enable(disc[6]); +	} +	if ((per & 2) == 2) { +		putxy(560, 72); +		writeg("IDA", 4); +		menu_enable(disc[7]); +	} +	if ((per & 1) == 1) { +		putxy(560, 80); +		writeg("MAX", 4); +		menu_enable(disc[8]); +	} +	ipers = per; +} + +/* overlay */ void choix(integer min, integer max, integer &per) { +	boolean i; +	integer haz, cx, cy, cz; +	long_integer per2, cz2; + +	/* debug('o0 choix'); */ +	haz = hazard(min, max); +	if (haz > 4) { +		haz = 8 - haz; +		i = true; +	} else i = false; +	cx = 0; +	per = 0; +	while (cx < haz) { +		cy = hazard(1, 8); +		conv(cy, cz); +		if ((per & cz) != cz) { +			cx = cx + 1; +			per = (per | cz); +		} +	} +	if (i)  per = 255 - per; +	i = false; +} + +/* overlay */ void cpl1(integer &p) { +	integer j, h, m; + +	/* debug('o0 cpl1'); */ +	calch(j, h, m); +	if ((h > 7) || (h < 11))  p = 25; +	if ((h > 10) && (h < 14))  p = 35; +	if ((h > 13) && (h < 16))  p = 50; +	if ((h > 15) && (h < 18))  p = 5; +	if ((h > 17) && (h < 22))  p = 35; +	if ((h > 21) && (h < 24))  p = 50; +	if ((h >= 0) && (h < 8))  p = 70; +	mdn(); +} + +/* overlay */ void cpl2(integer &p) { +	integer j, h, m; + +	/* debug('o0 cpl2'); */ +	calch(j, h, m); +	if ((h > 7) && (h < 11))  p = -2; +	if (h == 11)  p = 100; +	if ((h > 11) && (h < 23))  p = 10; +	if (h == 23)  p = 20; +	if ((h >= 0) && (h < 8))  p = 50; +} + +/* overlay */ void cpl3(integer &p) { +	integer j, h, m; + +	/* debug('o0 cpl3'); */ +	calch(j, h, m); +	if (((h > 8) && (h < 10)) || ((h > 19) && (h < 24)))  p = 34; +	if (((h > 9) && (h < 20)) || ((h >= 0) && (h < 9)))  p = 0; +} + +/* overlay */ void cpl5(integer &p) { +	integer j, h, m; + +	/* debug('o0 cpl5'); */ +	calch(j, h, m); +	if ((h > 6) && (h < 10))  p = 0; +	if (h == 10)  p = 100; +	if ((h > 10) && (h < 24))  p = 15; +	if ((h >= 0) && (h < 7))  p = 50; +} + +/* overlay */ void cpl6(integer &p) { +	integer j, h, m; + +	/* debug('o0 cpl6'); */ +	calch(j, h, m); +	if (((h > 7) && (h < 13)) || ((h > 17) && (h < 20)))  p = -2; +	if (((h > 12) && (h < 17)) || ((h > 19) && (h < 24)))  p = 35; +	if (h == 17)  p = 100; +	if ((h >= 0) && (h < 8))  p = 60; +} + +void person() { +	const char m1[] = "Vous"; +	const char m2[] = "ˆtes"; +	const char m3[] = "SEUL"; +	integer cf; +	str255 str_; + +	/* debug('person'); */ +	for (cf = 1; cf <= 8; cf ++) menu_disable(disc[cf]); +	clsf10(); +	putxy(560, 30); +	writeg(m1, 4); +	putxy(560, 50); +	writeg(m2, 4); +	putxy(560, 70); +	writeg(m3, 4); +	ipers = 0; +} + +void chlm(integer &per) { +	/* debug('chlm'); */ +	per = hazard(1, 2); +	if (per == 2)  per = 128; +} + +void pendule() { +	const matrix<1, 2, 1, 12, integer> cv +	= {{{{ 5,  8, 10,  8,  5,  0, -5,  -8, -10,  -8,  -5,   0}}, +			{{ -5, -3,  0,  3,  5,  6,  5,   3,   0,  -3,  -5,  -6}} +		} +	}; +	const integer x = 580; +	const integer y = 123; +	const integer rg = 9; +	integer h, co; + + +	/* debug('pendule'); */ +	hide_mouse(); +	/*paint_rect(572,114,18,20); +	paint_rect(577,114,6,20);*/ +	paint_rect(570, 118, 20, 10); +	paint_rect(578, 114, 6, 18); +	if (set::of(cga, her, eos).has(gd))  co = 0; +	else co = 1; +	if (min == 0)  droite(((cardinal)x >> 1)*res, y, ((cardinal)x >> 1)*res, (y - rg), co); +	else droite(((cardinal)x >> 1)*res, y, ((cardinal)x >> 1)*res, (y + rg), co); +	h = heu; +	if (h > 12)  h = h - 12; +	if (h == 0)  h = 12; +	droite(((cardinal)x >> 1)*res, y, ((cardinal)(x + cv[1][h]) >> 1)*res, y + cv[2][h], co); +	show_mouse(); +	putxy(568, 154); +	if (heu > 11)  writeg("PM ", 1); +	else writeg("AM ", 1); +	putxy(550, 160); +	if (set::of(range(0, 8), eos).has(jou))  writeg(string(chr(jou + 49)) + "& jour", 1);  }  /*************   * NIVEAU 11 *   *************/ -void debloc(integer l) -{ -/* debug('debloc'); */ - num= 0; - x= 0; - y= 0; - if ((l!= 26) && (l!= 15))  t5(l); - mpers= ipers; +void debloc(integer l) { +	/* debug('debloc'); */ +	num = 0; +	x = 0; +	y = 0; +	if ((l != 26) && (l != 15))  t5(l); +	mpers = ipers;  } -/* overlay */ void cpl10(integer& p,integer& h) -{ - integer j,m; +/* overlay */ void cpl10(integer &p, integer &h) { +	integer j, m; -/* debug('o1 cpl10'); */ - calch(j,h,m); - if (((h> 7) && (h< 11)) || ((h> 11) && (h< 14)) -  || ((h> 18) && (h< 21)))  p= 100; - if ((h== 11) || ((h> 20) && (h< 24)))  p= 45; - if (((h> 13) && (h< 17)) || (h== 18))  p= 35; - if (h== 17)  p= 60; - if ((h>= 0) && (h< 8))  p= 5; +	/* debug('o1 cpl10'); */ +	calch(j, h, m); +	if (((h > 7) && (h < 11)) || ((h > 11) && (h < 14)) +	        || ((h > 18) && (h < 21)))  p = 100; +	if ((h == 11) || ((h > 20) && (h < 24)))  p = 45; +	if (((h > 13) && (h < 17)) || (h == 18))  p = 35; +	if (h == 17)  p = 60; +	if ((h >= 0) && (h < 8))  p = 5;  } -/* overlay */ void cpl11(integer& p,integer& h) -{ - integer j,m; - -/* debug('o1 cpl11'); */ - calch(j,h,m); - if (((h> 8) && (h< 12)) || ((h> 20) && (h< 24)))  p= 25; - if (((h> 11) && (h< 14)) || ((h> 18) && (h< 21)))  p= 5; - if ((h> 13) && (h< 17))  p= 55; - if ((h> 16) && (h< 19))  p= 45; - if ((h>= 0) && (h< 9))  p= 0; -} - -/* overlay */ void cpl12(integer& p) -{ - integer j,h,m; - -/* debug('o1 cpl12'); */ - calch(j,h,m); - if (((h> 8) && (h< 15)) || ((h> 16) && (h< 22)))  p= 55; - if (((h> 14) && (h< 17)) || ((h> 21) && (h< 24)))  p= 25; - if ((h>= 0) && (h< 5))  p= 0; - if ((h> 4) && (h< 9))  p= 15; -} - -/* overlay */ void cpl13(integer& p) -{ -/* debug('o1 cpl13'); */ - p= 0; -} - -/* overlay */ void cpl15(integer& p) -{ - integer j,h,m; +/* overlay */ void cpl11(integer &p, integer &h) { +	integer j, m; -/* debug('o1 cpl15'); */ - calch(j,h,m); - if ((h> 7) && (h< 12))  p= 25; - if ((h> 11) && (h< 14))  p= 0; - if ((h> 13) && (h< 18))  p= 10; - if ((h> 17) && (h< 20))  p= 55; - if ((h> 19) && (h< 22))  p= 5; - if ((h> 21) && (h< 24))  p= 15; - if ((h>= 0) && (h< 8))  p= -15; -} - -/* overlay */ void cpl20(integer& p,integer& h) -{ - integer j,m; - -/* debug('o1 cpl20'); */ - calch(j,h,m); - if (h== 10)  p= 65; - if ((h> 10) && (h< 21))  p= 5; - if ((h> 20) && (h< 24))  p= -15; - if ((h>= 0) && (h< 5))  p= -300; - if ((h> 4) && (h< 10))  p= -5; -} - -/* overlay */ void quelq1(integer l) -{ - integer per; - -/* debug('o1 quelq1'); */ - per= hazard(1,2); - if (l== 1)  -  if (per== 1)  bh1= true; else bf1= true; - if (l== 4)  -  if (per== 1)  bh4= true; else bf4= true; - ipers= 10; -} - -/* overlay */ void quelq2() -{ -/* debug('o1 quelq2'); */ - if (li== 2)  bh2= true; else bh9= true; - ipers= 10; -} - -/* overlay */ void quelq5() -{ -/* debug('o1 quelq5'); */ - bh5= true; - ipers= 10; -} - -/* overlay */ void quelq6(integer l) -{ - integer per; - -/* debug('o1 quelq6'); */ - if (l== 6)  bh6= true; - if (l== 8)  bh8= true; - ipers= 10; -} - -/* overlay */ void quelq10(integer h, integer& per) -{ - integer min,max; - -/* debug('o1 quelq10'); */ - if ((h>= 0) && (h< 8))  chlm(per); else - { -  if ((h> 7) && (h< 10))  -  { -   min= 5; -   max= 7; -  } -  if ((h> 9) && (h< 12))  -  { -   min= 1; -   max= 4; -  } -  if (((h> 11) && (h< 15)) || ((h> 18) && (h< 21)))  -  { -   min= 6; -   max= 8; -  } -  if (((h> 14) && (h< 19)) || ((h> 20) && (h< 24)))  -  { -   min= 1; -   max= 5; -  } -  choix(min,max,per); - } - affper(per); -} - -/* overlay */ void quelq11(integer h, integer& per) -{ - integer min,max; - -/* debug('o1 quelq11'); */ - if ((h>= 0) && (h< 8))  chlm(per); else - { -  if (((h> 7) && (h< 10)) || ((h>20) && (h< 24)))  -  { -   min= 1; -   max= 3; -  } -  if (((h> 9) && (h< 12)) || ((h> 13) && (h< 19)))  -  { -   min= 1; -   max= 4; -  } -  if (((h> 11) && (h< 14)) || ((h> 18) && (h< 21))) -  { -   min= 1; -   max= 2; -  } -  choix(min,max,per); - } - affper(per); -} - -/* overlay */ void quelq12(integer& per) -{ -/* debug('o1 quelq12'); */ - chlm(per); - affper(per); -} - -/* overlay */ void quelq15(integer& per) -{ - integer cx; - boolean test; - - -/* debug('o1 quelq15'); */ - per= 0; - if (per== 0)  - { -   do { -     cx= hazard(1,8); -     test =(((cx== 1) && (bh2 || bh9)) || -             ((cx== 2) && bh8) || -             ((cx== 3) && bh4) || -             ((cx== 4) && bf4) || -             ((cx== 5) && bh6) || -             ((cx== 6) && bh1) || -             ((cx== 7) && bf1) || -             ((cx== 8) && bh5)); -  } while (!(! test)); -  conv(cx,per); -  affper(per); - } -} - -/* overlay */ void quelq20(integer h, integer& per) -{ - integer min,max; - -/* debug('o1 quelq20'); */ - if (((h>= 0) && (h< 10)) || ((h> 18) && (h< 24)))  chlm(per); - else - { -  if ((h> 9) && (h< 12))  -  { -   min= 3; -   max= 7; -  } -  if ((h> 11) && (h< 18))  -  { -   min= 1; -   max= 2; -  } -  if (h== 18)  -  { -   min= 2; -   max= 4; -  } -  choix(min,max,per); - } - affper(per); -} - - -/* overlay */void frap() -{ - integer j,h,m,haz; - -/* debug('o1 frap'); */ - calch(j,h,m); - if ((h>= 0) && (h< 8))  crep= 190; else - { -  haz= hazard(1,100); -  if (haz> 70)  crep= 190; else crep= 147; - } -} - -/* overlay */ void nouvp(integer l, integer& p) -{ -/* debug('o1 nouvp'); */ - p= 0; - if (l== 1)  - { -  if (bh1)  p= 4; -  if (bf1)  p= 2; - } - if (((l== 2) && (bh2)) || ((l== 9) && (bh9)))  p= 128; - if (l== 4)  - { -  if (bh4)  p= 32; -  if (bf4)  p= 16; - } - if ((l== 5) && (bh5))  p= 1; - if ((l== 6) && (bh6))  p= 8; - if ((l== 8) && (bh8))  p= 64; - if (((l== 3) && (bt3)) || ((l== 7) && (bt7)))  p= 9; - if (p!= 9)  affper(p); -} - - - -/* overlay */ void tip(integer ip, integer& cx) -{ -/* debug('o1 tip'); */ - if (ip== 128)  cx= 1; else - if (ip== 64)   cx= 2; else - if (ip== 32)   cx= 3; else - if (ip== 16)   cx= 4; else - if (ip== 8)    cx= 5; else - if (ip== 4)    cx= 6; else - if (ip== 2)    cx= 7; else - if (ip== 1)    cx= 8; -} - - -/* overlay */ void ecfren(integer& p,integer& haz, integer cf,integer l) -{ -/* debug('o1 ecfren'); */ - if (l== 0)  person(); - p= -500; - haz= 0; - if (((l== 1) && (! bh1) && (! bf1)) - || ((l== 4) && (! bh4) && (! bf4)))  cpl1(p); - if ((l== 2) && (! bh2) && (! bh9))  cpl2(p); - if (((l== 3) && (! bt3)) || ((l== 7) && (! bt7)))  cpl3(p); - if ((l== 5) && (! bh5))  cpl5(p); - if (((l== 6) && (! bh6)) || ((l== 8) && (! bh8)))  cpl6(p); - if ((l== 9) && (! bh9) && (! bh2))  p= 10; - if (((l== 2) && (bh9)) || ((l== 9) && (bh2)))  p= -400; - if (p!= -500)  - { -  p= p+ cf; -  haz= hazard(1,100); - } -} - -/* overlay */ void becfren(integer l) -{ - integer haz; - -/* debug('o1 becfren'); */ - if ((l== 1) || (l== 4))  - { -  haz= hazard(1,2); -  if (l== 1)  -   if (haz== 1)  bh1= true; else bf1= true; -  if (l== 4)  -   if (haz== 1)  bh4= true; else bf4= true; - } - if (l== 2)  bh2= true; else - if (l== 3)  bt3= true; else - if (l== 5)  bh5= true; else - if (l== 6)  bh6= true; else - if (l== 7)  bt7= true; else - if (l== 8)  bh8= true; else - if (l== 9)  bh9= true; +	/* debug('o1 cpl11'); */ +	calch(j, h, m); +	if (((h > 8) && (h < 12)) || ((h > 20) && (h < 24)))  p = 25; +	if (((h > 11) && (h < 14)) || ((h > 18) && (h < 21)))  p = 5; +	if ((h > 13) && (h < 17))  p = 55; +	if ((h > 16) && (h < 19))  p = 45; +	if ((h >= 0) && (h < 9))  p = 0; +} + +/* overlay */ void cpl12(integer &p) { +	integer j, h, m; + +	/* debug('o1 cpl12'); */ +	calch(j, h, m); +	if (((h > 8) && (h < 15)) || ((h > 16) && (h < 22)))  p = 55; +	if (((h > 14) && (h < 17)) || ((h > 21) && (h < 24)))  p = 25; +	if ((h >= 0) && (h < 5))  p = 0; +	if ((h > 4) && (h < 9))  p = 15; +} + +/* overlay */ void cpl13(integer &p) { +	/* debug('o1 cpl13'); */ +	p = 0; +} + +/* overlay */ void cpl15(integer &p) { +	integer j, h, m; + +	/* debug('o1 cpl15'); */ +	calch(j, h, m); +	if ((h > 7) && (h < 12))  p = 25; +	if ((h > 11) && (h < 14))  p = 0; +	if ((h > 13) && (h < 18))  p = 10; +	if ((h > 17) && (h < 20))  p = 55; +	if ((h > 19) && (h < 22))  p = 5; +	if ((h > 21) && (h < 24))  p = 15; +	if ((h >= 0) && (h < 8))  p = -15; +} + +/* overlay */ void cpl20(integer &p, integer &h) { +	integer j, m; + +	/* debug('o1 cpl20'); */ +	calch(j, h, m); +	if (h == 10)  p = 65; +	if ((h > 10) && (h < 21))  p = 5; +	if ((h > 20) && (h < 24))  p = -15; +	if ((h >= 0) && (h < 5))  p = -300; +	if ((h > 4) && (h < 10))  p = -5; +} + +/* overlay */ void quelq1(integer l) { +	integer per; + +	/* debug('o1 quelq1'); */ +	per = hazard(1, 2); +	if (l == 1) +		if (per == 1)  bh1 = true; +		else bf1 = true; +	if (l == 4) +		if (per == 1)  bh4 = true; +		else bf4 = true; +	ipers = 10; +} + +/* overlay */ void quelq2() { +	/* debug('o1 quelq2'); */ +	if (li == 2)  bh2 = true; +	else bh9 = true; +	ipers = 10; +} + +/* overlay */ void quelq5() { +	/* debug('o1 quelq5'); */ +	bh5 = true; +	ipers = 10; +} + +/* overlay */ void quelq6(integer l) { +	integer per; + +	/* debug('o1 quelq6'); */ +	if (l == 6)  bh6 = true; +	if (l == 8)  bh8 = true; +	ipers = 10; +} + +/* overlay */ void quelq10(integer h, integer &per) { +	integer min, max; + +	/* debug('o1 quelq10'); */ +	if ((h >= 0) && (h < 8))  chlm(per); +	else { +		if ((h > 7) && (h < 10)) { +			min = 5; +			max = 7; +		} +		if ((h > 9) && (h < 12)) { +			min = 1; +			max = 4; +		} +		if (((h > 11) && (h < 15)) || ((h > 18) && (h < 21))) { +			min = 6; +			max = 8; +		} +		if (((h > 14) && (h < 19)) || ((h > 20) && (h < 24))) { +			min = 1; +			max = 5; +		} +		choix(min, max, per); +	} +	affper(per); +} + +/* overlay */ void quelq11(integer h, integer &per) { +	integer min, max; + +	/* debug('o1 quelq11'); */ +	if ((h >= 0) && (h < 8))  chlm(per); +	else { +		if (((h > 7) && (h < 10)) || ((h > 20) && (h < 24))) { +			min = 1; +			max = 3; +		} +		if (((h > 9) && (h < 12)) || ((h > 13) && (h < 19))) { +			min = 1; +			max = 4; +		} +		if (((h > 11) && (h < 14)) || ((h > 18) && (h < 21))) { +			min = 1; +			max = 2; +		} +		choix(min, max, per); +	} +	affper(per); +} + +/* overlay */ void quelq12(integer &per) { +	/* debug('o1 quelq12'); */ +	chlm(per); +	affper(per); +} + +/* overlay */ void quelq15(integer &per) { +	integer cx; +	boolean test; + + +	/* debug('o1 quelq15'); */ +	per = 0; +	if (per == 0) { +		do { +			cx = hazard(1, 8); +			test = (((cx == 1) && (bh2 || bh9)) || +			        ((cx == 2) && bh8) || +			        ((cx == 3) && bh4) || +			        ((cx == 4) && bf4) || +			        ((cx == 5) && bh6) || +			        ((cx == 6) && bh1) || +			        ((cx == 7) && bf1) || +			        ((cx == 8) && bh5)); +		} while (!(! test)); +		conv(cx, per); +		affper(per); +	} +} + +/* overlay */ void quelq20(integer h, integer &per) { +	integer min, max; + +	/* debug('o1 quelq20'); */ +	if (((h >= 0) && (h < 10)) || ((h > 18) && (h < 24)))  chlm(per); +	else { +		if ((h > 9) && (h < 12)) { +			min = 3; +			max = 7; +		} +		if ((h > 11) && (h < 18)) { +			min = 1; +			max = 2; +		} +		if (h == 18) { +			min = 2; +			max = 4; +		} +		choix(min, max, per); +	} +	affper(per); +} + + +/* overlay */void frap() { +	integer j, h, m, haz; + +	/* debug('o1 frap'); */ +	calch(j, h, m); +	if ((h >= 0) && (h < 8))  crep = 190; +	else { +		haz = hazard(1, 100); +		if (haz > 70)  crep = 190; +		else crep = 147; +	} +} + +/* overlay */ void nouvp(integer l, integer &p) { +	/* debug('o1 nouvp'); */ +	p = 0; +	if (l == 1) { +		if (bh1)  p = 4; +		if (bf1)  p = 2; +	} +	if (((l == 2) && (bh2)) || ((l == 9) && (bh9)))  p = 128; +	if (l == 4) { +		if (bh4)  p = 32; +		if (bf4)  p = 16; +	} +	if ((l == 5) && (bh5))  p = 1; +	if ((l == 6) && (bh6))  p = 8; +	if ((l == 8) && (bh8))  p = 64; +	if (((l == 3) && (bt3)) || ((l == 7) && (bt7)))  p = 9; +	if (p != 9)  affper(p); +} + + + +/* overlay */ void tip(integer ip, integer &cx) { +	/* debug('o1 tip'); */ +	if (ip == 128)  cx = 1; +	else if (ip == 64)   cx = 2; +	else if (ip == 32)   cx = 3; +	else if (ip == 16)   cx = 4; +	else if (ip == 8)    cx = 5; +	else if (ip == 4)    cx = 6; +	else if (ip == 2)    cx = 7; +	else if (ip == 1)    cx = 8; +} + + +/* overlay */ void ecfren(integer &p, integer &haz, integer cf, integer l) { +	/* debug('o1 ecfren'); */ +	if (l == 0)  person(); +	p = -500; +	haz = 0; +	if (((l == 1) && (! bh1) && (! bf1)) +	        || ((l == 4) && (! bh4) && (! bf4)))  cpl1(p); +	if ((l == 2) && (! bh2) && (! bh9))  cpl2(p); +	if (((l == 3) && (! bt3)) || ((l == 7) && (! bt7)))  cpl3(p); +	if ((l == 5) && (! bh5))  cpl5(p); +	if (((l == 6) && (! bh6)) || ((l == 8) && (! bh8)))  cpl6(p); +	if ((l == 9) && (! bh9) && (! bh2))  p = 10; +	if (((l == 2) && (bh9)) || ((l == 9) && (bh2)))  p = -400; +	if (p != -500) { +		p = p + cf; +		haz = hazard(1, 100); +	} +} + +/* overlay */ void becfren(integer l) { +	integer haz; + +	/* debug('o1 becfren'); */ +	if ((l == 1) || (l == 4)) { +		haz = hazard(1, 2); +		if (l == 1) +			if (haz == 1)  bh1 = true; +			else bf1 = true; +		if (l == 4) +			if (haz == 1)  bh4 = true; +			else bf4 = true; +	} +	if (l == 2)  bh2 = true; +	else if (l == 3)  bt3 = true; +	else if (l == 5)  bh5 = true; +	else if (l == 6)  bh6 = true; +	else if (l == 7)  bt7 = true; +	else if (l == 8)  bh8 = true; +	else if (l == 9)  bh9 = true;  }  /* NIVEAU 10 */ -void init_nbrepm() -{ -        const array<1,8,byte> ipm -            = {{4,5,6,7,5,6,5,8}}; -       integer i; - -/* debug('init_nbrepm'); */ -  i= 0; -  do { -    i= succ(integer,i); -    nbrepm[i]= ipm[i]; -  } while (!(i==8)); -} - -void phaz(integer& haz,integer& p, integer cf) -{ -/* debug('phaz'); */ - p= p+ cf; - haz= hazard(1,100); -} - -/* overlay */ void inzon() -{ - integer cx; - -/* debug('o2 inzon'); */ - copcha(); - { -  s.ipre  = false; -  s.derobj= 0; -  s.icave = 0; -  s.iboul = 0; -  s.ibag  = 0; -  s.ipuit = 0; -  s.ivier = 0; -  s.iloic = 136; -  s.icryp = 141; -  s.conf  = hazard(4,10); -  s.mlieu = 21; -  for( cx= 2; cx <= 6; cx ++) s.sjer[cx]= chr(0); -  s.sjer[1]= chr(113); -  s.heure= chr(20); -  for( cx= 1; cx <= 10; cx ++) s.pourc[cx]= ' '; -  for( cx= 1; cx <= 6; cx ++) s.teauto[cx]= '*'; -  for( cx= 7; cx <= 9; cx ++) s.teauto[cx]= ' '; -  for( cx= 10; cx <= 28; cx ++) s.teauto[cx]= '*'; -  for( cx= 29; cx <= 42; cx ++) s.teauto[cx]= ' '; -  s.teauto[33]= '*'; - } - for( cx= 1; cx <= 8; cx ++) nbrep[cx]= 0; - init_nbrepm(); -} - -/* overlay */ void dprog() -{ -/* debug('o2 dprog'); */ - li= 21; - /* jh:= t_settime(0);*/ - jh= 0; - if (! s.ipre)  blo= true; - t= ti1; - mh= readclock(); -} - -/* overlay */ void pl1(integer cf) -{ - integer p, haz; - -/* debug('o2 pl1'); */ - if (((li== 1) && (! bh1) && (! bf1)) - || ((li== 4) && (! bh4) && (! bf4)))  - { -  cpl1(p); -  phaz(haz,p,cf); -  if (haz> p)  person(); else quelq1(li); - } -} - -/* overlay */ void pl2(integer cf) -{ - integer p,haz; - -/* debug('o2 pl2'); */ - if (! bh2)  - { -  cpl2(p); -  phaz(haz,p,cf); -  if (haz> p)  person(); else quelq2(); - } -} - -/* overlay */ void pl5(integer cf) -{ - integer p,haz; - -/* debug('o2 pl5'); */ - if (! bh5)  - { -  cpl5(p); -  phaz(haz,p,cf); -  if (haz> p)  person(); else quelq5(); - } -} - -/* overlay */ void pl6(integer cf) -{ - integer p,haz; - -/* debug('o2 pl6'); */ - if (((li== 6) && (! bh6)) || ((li== 8) && (! bh8)))  - { -  cpl6(p); -  phaz(haz,p,cf); -  if (haz> p)  person(); else quelq6(li); - } -} - -/* overlayi */ void pl9(integer cf) -{ - integer p,haz; - -/* debug('o2 pl9'); */ - if (! bh9)  - { -  cf= -10; -  phaz(haz,p,cf); -  if (haz> p)  person(); else quelq2(); - } -} - -/* overlayi */ void pl10(integer cf) -{ - integer p,h,haz; - -/* debug('o2 pl10'); */ - cpl10(p,h); - phaz(haz,p,cf); - if (haz> p)  person(); else quelq10(h,p); -} - -/* overlay */ void pl11(integer cf) -{ - integer p,h,haz; - -/* debug('o2 pl11'); */ - cpl11(p,h); - phaz(haz,p,cf); - if (haz> p)  person(); else quelq11(h,p); -} - -/* overlay */ void pl12(integer cf) -{ - integer p,haz; - -/* debug('o2 pl12'); */ - cpl12(p); - phaz(haz,p,cf); - if (haz> p)  person(); else quelq12(p); -} - -/* overlay */ void pl13(integer cf) -{ - integer p,haz; - -/* debug('o2 pl13'); */ - cpl13(p); - phaz(haz,p,cf); - if (haz> p)  person(); else quelq12(p); -} - -/* overlay */ void pl15(integer cf) -{ - integer p,haz; - -/* debug('o2 pl15'); */ - cpl15(p); - phaz(haz,p,cf); - if (haz> p)  person(); else quelq15(p); -} - -/* overlay */ void pl20(integer cf) -{ - integer p,h,haz; - -/* debug('o2 pl20'); */ - cpl20(p,h); - phaz(haz,p,cf); - if (haz> p)  person(); else quelq20(h,p); -} - -/* overlay */ void t11(integer l11, integer& a) -{ - integer p,haz,h; - -/* debug('o2 t11'); */ - ecfren(p,haz,s.conf,l11); - li= l11; - if ((l11> 0) && (l11< 10))  -  if (p!= -500)  -  { -   if (haz> p)  -   { -    person(); -    a= 0; -   } -   else -   { -    becfren(li); -    nouvp(li,a); -   } -  } -  else nouvp(li,a); - if (l11> 9)  -  if ((l11> 15) && (l11!= 20) && (l11!= 26))  person(); else -  { -   if (l11== 10)  cpl10(p,h); -   if (l11== 11)  cpl11(p,h); -   if (l11== 12)  cpl12(p); -   if ((l11== 13) || (l11== 14))  cpl13(p); -   if ((l11== 15) || (l11== 26))  cpl15(p); -   if (l11== 20)  cpl20(p,h); -   p= p+ s.conf; -   haz= hazard(1,100); -   if (haz> p)  -   { -    person(); -    a= 0; -   } -   else -   { -    if (l11== 10)  quelq10(h,p); -    if (l11== 11)  quelq11(h,p); -    if ((l11== 12) || (l11== 13) || (l11== 14))  quelq12(p); -    if ((l11== 15) || (l11== 26))  quelq15(p); -    if (l11== 20)  quelq20(h,p); -    a= p; -   } -  } +void init_nbrepm() { +	const array<1, 8, byte> ipm +	= {{4, 5, 6, 7, 5, 6, 5, 8}}; +	integer i; + +	/* debug('init_nbrepm'); */ +	i = 0; +	do { +		i = succ(integer, i); +		nbrepm[i] = ipm[i]; +	} while (!(i == 8)); +} + +void phaz(integer &haz, integer &p, integer cf) { +	/* debug('phaz'); */ +	p = p + cf; +	haz = hazard(1, 100); +} + +/* overlay */ void inzon() { +	integer cx; + +	/* debug('o2 inzon'); */ +	copcha(); +	{ +		s.ipre  = false; +		s.derobj = 0; +		s.icave = 0; +		s.iboul = 0; +		s.ibag  = 0; +		s.ipuit = 0; +		s.ivier = 0; +		s.iloic = 136; +		s.icryp = 141; +		s.conf  = hazard(4, 10); +		s.mlieu = 21; +		for (cx = 2; cx <= 6; cx ++) s.sjer[cx] = chr(0); +		s.sjer[1] = chr(113); +		s.heure = chr(20); +		for (cx = 1; cx <= 10; cx ++) s.pourc[cx] = ' '; +		for (cx = 1; cx <= 6; cx ++) s.teauto[cx] = '*'; +		for (cx = 7; cx <= 9; cx ++) s.teauto[cx] = ' '; +		for (cx = 10; cx <= 28; cx ++) s.teauto[cx] = '*'; +		for (cx = 29; cx <= 42; cx ++) s.teauto[cx] = ' '; +		s.teauto[33] = '*'; +	} +	for (cx = 1; cx <= 8; cx ++) nbrep[cx] = 0; +	init_nbrepm(); +} + +/* overlay */ void dprog() { +	/* debug('o2 dprog'); */ +	li = 21; +	/* jh:= t_settime(0);*/ +	jh = 0; +	if (! s.ipre)  blo = true; +	t = ti1; +	mh = readclock(); +} + +/* overlay */ void pl1(integer cf) { +	integer p, haz; + +	/* debug('o2 pl1'); */ +	if (((li == 1) && (! bh1) && (! bf1)) +	        || ((li == 4) && (! bh4) && (! bf4))) { +		cpl1(p); +		phaz(haz, p, cf); +		if (haz > p)  person(); +		else quelq1(li); +	} +} + +/* overlay */ void pl2(integer cf) { +	integer p, haz; + +	/* debug('o2 pl2'); */ +	if (! bh2) { +		cpl2(p); +		phaz(haz, p, cf); +		if (haz > p)  person(); +		else quelq2(); +	} +} + +/* overlay */ void pl5(integer cf) { +	integer p, haz; + +	/* debug('o2 pl5'); */ +	if (! bh5) { +		cpl5(p); +		phaz(haz, p, cf); +		if (haz > p)  person(); +		else quelq5(); +	} +} + +/* overlay */ void pl6(integer cf) { +	integer p, haz; + +	/* debug('o2 pl6'); */ +	if (((li == 6) && (! bh6)) || ((li == 8) && (! bh8))) { +		cpl6(p); +		phaz(haz, p, cf); +		if (haz > p)  person(); +		else quelq6(li); +	} +} + +/* overlayi */ void pl9(integer cf) { +	integer p, haz; + +	/* debug('o2 pl9'); */ +	if (! bh9) { +		cf = -10; +		phaz(haz, p, cf); +		if (haz > p)  person(); +		else quelq2(); +	} +} + +/* overlayi */ void pl10(integer cf) { +	integer p, h, haz; + +	/* debug('o2 pl10'); */ +	cpl10(p, h); +	phaz(haz, p, cf); +	if (haz > p)  person(); +	else quelq10(h, p); +} + +/* overlay */ void pl11(integer cf) { +	integer p, h, haz; + +	/* debug('o2 pl11'); */ +	cpl11(p, h); +	phaz(haz, p, cf); +	if (haz > p)  person(); +	else quelq11(h, p); +} + +/* overlay */ void pl12(integer cf) { +	integer p, haz; + +	/* debug('o2 pl12'); */ +	cpl12(p); +	phaz(haz, p, cf); +	if (haz > p)  person(); +	else quelq12(p); +} + +/* overlay */ void pl13(integer cf) { +	integer p, haz; + +	/* debug('o2 pl13'); */ +	cpl13(p); +	phaz(haz, p, cf); +	if (haz > p)  person(); +	else quelq12(p); +} + +/* overlay */ void pl15(integer cf) { +	integer p, haz; + +	/* debug('o2 pl15'); */ +	cpl15(p); +	phaz(haz, p, cf); +	if (haz > p)  person(); +	else quelq15(p); +} + +/* overlay */ void pl20(integer cf) { +	integer p, h, haz; + +	/* debug('o2 pl20'); */ +	cpl20(p, h); +	phaz(haz, p, cf); +	if (haz > p)  person(); +	else quelq20(h, p); +} + +/* overlay */ void t11(integer l11, integer &a) { +	integer p, haz, h; + +	/* debug('o2 t11'); */ +	ecfren(p, haz, s.conf, l11); +	li = l11; +	if ((l11 > 0) && (l11 < 10)) +		if (p != -500) { +			if (haz > p) { +				person(); +				a = 0; +			} else { +				becfren(li); +				nouvp(li, a); +			} +		} else nouvp(li, a); +	if (l11 > 9) +		if ((l11 > 15) && (l11 != 20) && (l11 != 26))  person(); +		else { +			if (l11 == 10)  cpl10(p, h); +			if (l11 == 11)  cpl11(p, h); +			if (l11 == 12)  cpl12(p); +			if ((l11 == 13) || (l11 == 14))  cpl13(p); +			if ((l11 == 15) || (l11 == 26))  cpl15(p); +			if (l11 == 20)  cpl20(p, h); +			p = p + s.conf; +			haz = hazard(1, 100); +			if (haz > p) { +				person(); +				a = 0; +			} else { +				if (l11 == 10)  quelq10(h, p); +				if (l11 == 11)  quelq11(h, p); +				if ((l11 == 12) || (l11 == 13) || (l11 == 14))  quelq12(p); +				if ((l11 == 15) || (l11 == 26))  quelq15(p); +				if (l11 == 20)  quelq20(h, p); +				a = p; +			} +		}  }  /* overlay */ void cavegre()  { - integer haz; - -/* debug('cavegre'); */ - s.conf= s.conf+ 2; - if (s.conf> 69)  s.conf= s.conf+ (s.conf / 10); - clsf3(); - ecrf2(); - ecr3(m1); - haz= (hazard(0, 4))- 2; - parole(2, haz, 1); - for( haz=0; haz <= 3000; haz ++); - clsf3(); - person(); -} - -void writetp(str255 s,integer t) -{ -  if (res==2)  writeg(s,t); -           else writeg(copy(s,1,25),t); -} - -void messint(integer nu) -{ -/* debug('messint'); */ - clsf1(); - clsf2(); - clsf3(); - decomp( 0x73a2, 1008); - memw[0x7413+12]= 80; - memw[0x7413+14]=  40; - writepal(90); - afff(gd,0x73a2, 1008,0,0); - afff(gd,0x73a2, 1008,0,70); - repon(7,nu); -} - -void aniof(integer ouf,integer num) -   { -          integer ad, offset; -            char c; - -   /* debug('aniof'); */ -     if ((caff== 7) && ((num== 4) || (num== 5)))  return; -     if ((caff== 10) && (num== 7))  num= 6; -     if (caff== 12)  if (num== 3)  num= 4; -                                    else if (num== 4)  num= 3; -     ad= adani; -     offset= animof(ouf,num); -     decomp(ad,offset); -     hide_mouse(); -     afff(gd,ad,offset,0,12); -     ecrf1(); -     show_mouse(); -   } - -void musique(integer so) -{ - boolean i; - integer haz; -/* dep: array[1..5] of long_integer;*/ - -/* debug('musique'); */ -  if (so== 0)   /*musik(0)*/ {; } -   else -  if ((prebru== 0) && (! s.ipre))  -  { -   parole(10, 1, 1); -   prebru= prebru+ 1; -  } -  else -  { -   i= false; -   if ((s.mlieu== 19) || (s.mlieu== 21) || (s.mlieu== 22))  -   { -    haz= hazard(1,3); -    if (haz== 2)  -    { -     haz= hazard(2,4); -     parole(9,haz,1); -     i= true; -    } -   } -   if (s.mlieu== 20)  -   { -    haz= hazard(1,2); -    if (haz== 1)  -    { -     parole(8,1,1); -     i= true; -    } -   } -   if (s.mlieu== 24)  -   { -    haz= hazard(1,2); -    if (haz== 2)  -    { -     parole(12,1,1); -     i= true; -    } -   } -   if (s.mlieu== 23)  -   { -    parole(13,1,1); -    i= true; -   } -   if (! i)  -   { -   /* dep[1]:= 1416; -    dep[2]:= 1512; -    dep[3]:= 1692; -    dep[4]:= 1884; -    dep[5]:= 2046; -    haz:= hazard(1,5); -    musik(dep[haz]);*/ -    haz= hazard(1,17); -    parole(haz,1,2); -   } -  } +	integer haz; + +	/* debug('cavegre'); */ +	s.conf = s.conf + 2; +	if (s.conf > 69)  s.conf = s.conf + (s.conf / 10); +	clsf3(); +	ecrf2(); +	ecr3(m1); +	haz = (hazard(0, 4)) - 2; +	parole(2, haz, 1); +	for (haz = 0; haz <= 3000; haz ++); +	clsf3(); +	person(); +} + +void writetp(str255 s, integer t) { +	if (res == 2)  writeg(s, t); +	else writeg(copy(s, 1, 25), t); +} + +void messint(integer nu) { +	/* debug('messint'); */ +	clsf1(); +	clsf2(); +	clsf3(); +	decomp(0x73a2, 1008); +	memw[0x7413 + 12] = 80; +	memw[0x7413 + 14] =  40; +	writepal(90); +	afff(gd, 0x73a2, 1008, 0, 0); +	afff(gd, 0x73a2, 1008, 0, 70); +	repon(7, nu); +} + +void aniof(integer ouf, integer num) { +	integer ad, offset; +	char c; + +	/* debug('aniof'); */ +	if ((caff == 7) && ((num == 4) || (num == 5)))  return; +	if ((caff == 10) && (num == 7))  num = 6; +	if (caff == 12)  if (num == 3)  num = 4; +		else if (num == 4)  num = 3; +	ad = adani; +	offset = animof(ouf, num); +	decomp(ad, offset); +	hide_mouse(); +	afff(gd, ad, offset, 0, 12); +	ecrf1(); +	show_mouse(); +} + +void musique(integer so) { +	boolean i; +	integer haz; +	/* dep: array[1..5] of long_integer;*/ + +	/* debug('musique'); */ +	if (so == 0) { /*musik(0)*/ +		; +	} else if ((prebru == 0) && (! s.ipre)) { +		parole(10, 1, 1); +		prebru = prebru + 1; +	} else { +		i = false; +		if ((s.mlieu == 19) || (s.mlieu == 21) || (s.mlieu == 22)) { +			haz = hazard(1, 3); +			if (haz == 2) { +				haz = hazard(2, 4); +				parole(9, haz, 1); +				i = true; +			} +		} +		if (s.mlieu == 20) { +			haz = hazard(1, 2); +			if (haz == 1) { +				parole(8, 1, 1); +				i = true; +			} +		} +		if (s.mlieu == 24) { +			haz = hazard(1, 2); +			if (haz == 2) { +				parole(12, 1, 1); +				i = true; +			} +		} +		if (s.mlieu == 23) { +			parole(13, 1, 1); +			i = true; +		} +		if (! i) { +			/* dep[1]:= 1416; +			 dep[2]:= 1512; +			 dep[3]:= 1692; +			 dep[4]:= 1884; +			 dep[5]:= 2046; +			 haz:= hazard(1,5); +			 musik(dep[haz]);*/ +			haz = hazard(1, 17); +			parole(haz, 1, 2); +		} +	}  }  /* NIVEAU 9 */ -void dessin(integer ad) -{ - integer cx; - -/* debug('dessin'); */ - if (ad!= 0)  dessine(ades,((ad % 160)* 2),(ad / 160)); -           else - { -  clsf1(); -  if (caff> 99)  -  { -    dessine(ades,60,33); -    boite(118, 32, 291, 121, 15);         /* cadre moyen */ -  } -  else -   if (caff> 69)  -   { -    dessine(ades,112,48);             /* tˆtes */ -    boite(222, 47, 155, 91, 15); -   } -   else -   { -    dessine(ades,0,12); -    ecrf1(); -    if ((caff< 30) || (caff> 32))  -    { -     for( cx= 1; cx <= 6; cx ++) -      if (ord(touv[cx])!= 0)  aniof(1,ord(touv[cx])); -     if (caff== 13)  -     { -      if (s.iboul== 141)  aniof(1,7); -      if (s.ibag== 159)  aniof(1,6); -     } -     if ((caff== 14) && (s.icave== 151))  aniof(1,2); -     if ((caff== 17) && (s.ivier== 143))  aniof(1,1); -     if ((caff== 24) && (s.ipuit!= 0))  aniof(1,1); -    } -    if (caff< 26)  musique(1); -   } - } +void dessin(integer ad) { +	integer cx; + +	/* debug('dessin'); */ +	if (ad != 0)  dessine(ades, ((ad % 160) * 2), (ad / 160)); +	else { +		clsf1(); +		if (caff > 99) { +			dessine(ades, 60, 33); +			boite(118, 32, 291, 121, 15);         /* cadre moyen */ +		} else if (caff > 69) { +			dessine(ades, 112, 48);           /* tˆtes */ +			boite(222, 47, 155, 91, 15); +		} else { +			dessine(ades, 0, 12); +			ecrf1(); +			if ((caff < 30) || (caff > 32)) { +				for (cx = 1; cx <= 6; cx ++) +					if (ord(touv[cx]) != 0)  aniof(1, ord(touv[cx])); +				if (caff == 13) { +					if (s.iboul == 141)  aniof(1, 7); +					if (s.ibag == 159)  aniof(1, 6); +				} +				if ((caff == 14) && (s.icave == 151))  aniof(1, 2); +				if ((caff == 17) && (s.ivier == 143))  aniof(1, 1); +				if ((caff == 24) && (s.ipuit != 0))  aniof(1, 1); +			} +			if (caff < 26)  musique(1); +		} +	}  } diff --git a/engines/mortevielle/mor2.h b/engines/mortevielle/mor2.h index 8edf601458..734cb4806c 100644 --- a/engines/mortevielle/mor2.h +++ b/engines/mortevielle/mor2.h @@ -1,764 +1,728 @@ -const array<1,11,integer> men -      = {{ scacher, attacher, defoncer, dormir, -          entrer,  fermer,   frapper,  manger, -          mettre,  ouvrir,   sortir }}; - -void tinke() -{ - const char m1[] = "Mince! Vous entendez du bruit..."; - const char d1[] = " | Vous devriez avoir remarqu‚|       "; - const char d2[] = "% des indices..."; - const char d3 = '['; - const char d4 = ']'; - const char d5 = '1'; - const char d6[] = "OK"; - integer cx,cy,haz,nh,cf,j,h,m,cd; -    varying_string<3> stpo; -      boolean am; - - anyone= false; - calch(j,h,m); - if (j!= jou)  - { -  jou= j; -  cx=0; -  do { -    cx=cx+1; -    if (nbrepm[cx]!= 0)  nbrepm[cx]= nbrepm[cx]- 1; -    nbrep[cx]= 0; -  } while (!(cx==8)); - } - if ((h> heu) || ((h== 0) && (heu== 23)))  - { -  heu= h; -  min= 0; -  pendule(); -  cf= 0; -  for( cx= 1; cx <= 10; cx ++) if (s.pourc[cx]== '*')  cf= cf+ 1; -  if (cf==10)  stpo="10"; -           else stpo=chr(cf+48); -  stpou= string(d3)+ d5+ d4+ d3+ d1+ stpo+ '0'+ d2+ d4+ d3+ d6+ d4; - } - if (m> min)  - { -  min= 30; -  pendule(); - } - if (y_s<12)  return; - if (! blo)  - { -  if ((h== 12) || ((h> 18) && (h< 21)) || ((h>= 0) && (h< 7)))  -   t= ti2; else t= ti1; -  cf= s.conf; -  if ((cf> 33) && (cf< 66))  t= t- (t / 3); -  if (cf> 65)  t= t- ((t / 3)* 2); -  nh= readclock(); -  if ((nh- mh)> t)  -  { -    am= active_menu; -    erase_menu(); -    jh= jh+ ((nh- mh)/ t); -    mh= nh; -    switch (li) { -            case 1:case 4 : pl1(cf); break; -              case 2 : pl2(cf); break; -              case 5 : pl5(cf); break; -            case 6:case 8 : pl6(cf); break; -              case 9 : pl9(cf); break; -             case 10 : pl10(cf); break; -             case 11 : pl11(cf); break; -             case 12 : pl12(cf); break; -          case 13:case 14 : pl13(cf); break; -          case 15:case 26 : pl15(cf); break; -             case 20 : pl20(cf); break; -        } -   if ((mpers!= 0) && (ipers!= 10))  mpers= ipers; -   if ((mpers== 0) && (ipers> 0))  -    if ((s.mlieu== 13) || (s.mlieu== 14))  cavegre(); else -     if (ipers== 10)  -     { -      ipers= 0; -      if (! brt)  -      { -       brt= true; -       hdb= readclock(); -       haz= hazard(1,5); -       if (haz< 5)  -       { -        clsf3(); -        ecrf2(); -        ecr3(m1); -        haz= (hazard(0, 4))- 2; -        parole(1, haz, 1); -        clsf3(); -       } -      } -     } -    if (am)  draw_menu(); -  } - } - hfb= readclock(); - if ((brt) && ((hfb- hdb)> 17))  - { -  nouvp(li,cx); -  brt= false; -  hdb= 0; -  if ((s.mlieu> 0) && (s.mlieu< 10))  anyone= true; - } -} - -void fenat(char ans) -{ -      integer coul; - -  hide_mouse(); -  if (gd==cga)  coul=2; -            else if (gd==her)  coul=1; else coul=12; -  affcar(gd,306,193,coul,ord(ans)); -  boite(300, 191, 16, 8, 15); -  show_mouse(); +const array<1, 11, integer> men += {{ +		scacher, attacher, defoncer, dormir, +		entrer,  fermer,   frapper,  manger, +		mettre,  ouvrir,   sortir +	} +}; + +void tinke() { +	const char m1[] = "Mince! Vous entendez du bruit..."; +	const char d1[] = " | Vous devriez avoir remarqu‚|       "; +	const char d2[] = "% des indices..."; +	const char d3 = '['; +	const char d4 = ']'; +	const char d5 = '1'; +	const char d6[] = "OK"; +	integer cx, cy, haz, nh, cf, j, h, m, cd; +	varying_string<3> stpo; +	boolean am; + +	anyone = false; +	calch(j, h, m); +	if (j != jou) { +		jou = j; +		cx = 0; +		do { +			cx = cx + 1; +			if (nbrepm[cx] != 0)  nbrepm[cx] = nbrepm[cx] - 1; +			nbrep[cx] = 0; +		} while (!(cx == 8)); +	} +	if ((h > heu) || ((h == 0) && (heu == 23))) { +		heu = h; +		min = 0; +		pendule(); +		cf = 0; +		for (cx = 1; cx <= 10; cx ++) if (s.pourc[cx] == '*')  cf = cf + 1; +		if (cf == 10)  stpo = "10"; +		else stpo = chr(cf + 48); +		stpou = string(d3) + d5 + d4 + d3 + d1 + stpo + '0' + d2 + d4 + d3 + d6 + d4; +	} +	if (m > min) { +		min = 30; +		pendule(); +	} +	if (y_s < 12)  return; +	if (! blo) { +		if ((h == 12) || ((h > 18) && (h < 21)) || ((h >= 0) && (h < 7))) +			t = ti2; +		else t = ti1; +		cf = s.conf; +		if ((cf > 33) && (cf < 66))  t = t - (t / 3); +		if (cf > 65)  t = t - ((t / 3) * 2); +		nh = readclock(); +		if ((nh - mh) > t) { +			am = active_menu; +			erase_menu(); +			jh = jh + ((nh - mh) / t); +			mh = nh; +			switch (li) { +			case 1: +			case 4 : +				pl1(cf); +				break; +			case 2 : +				pl2(cf); +				break; +			case 5 : +				pl5(cf); +				break; +			case 6: +			case 8 : +				pl6(cf); +				break; +			case 9 : +				pl9(cf); +				break; +			case 10 : +				pl10(cf); +				break; +			case 11 : +				pl11(cf); +				break; +			case 12 : +				pl12(cf); +				break; +			case 13: +			case 14 : +				pl13(cf); +				break; +			case 15: +			case 26 : +				pl15(cf); +				break; +			case 20 : +				pl20(cf); +				break; +			} +			if ((mpers != 0) && (ipers != 10))  mpers = ipers; +			if ((mpers == 0) && (ipers > 0)) +				if ((s.mlieu == 13) || (s.mlieu == 14))  cavegre(); +				else if (ipers == 10) { +					ipers = 0; +					if (! brt) { +						brt = true; +						hdb = readclock(); +						haz = hazard(1, 5); +						if (haz < 5) { +							clsf3(); +							ecrf2(); +							ecr3(m1); +							haz = (hazard(0, 4)) - 2; +							parole(1, haz, 1); +							clsf3(); +						} +					} +				} +			if (am)  draw_menu(); +		} +	} +	hfb = readclock(); +	if ((brt) && ((hfb - hdb) > 17)) { +		nouvp(li, cx); +		brt = false; +		hdb = 0; +		if ((s.mlieu > 0) && (s.mlieu < 10))  anyone = true; +	} +} + +void fenat(char ans) { +	integer coul; + +	hide_mouse(); +	if (gd == cga)  coul = 2; +	else if (gd == her)  coul = 1; +	else coul = 12; +	affcar(gd, 306, 193, coul, ord(ans)); +	boite(300, 191, 16, 8, 15); +	show_mouse();  }  /* NIVEAU 8 */ -void afdes(integer ad) -{ -  taffich(); -  dessin(ad); -  okdes= false; -} - -void tkey1(boolean d) -{ -      boolean quest; -      integer x,y,c; -      integer key; - - hide_mouse(); - fenat('K'); - while (keypressed())  key=testou(); - do { -   if (d)  tinke(); -   quest=keypressed(); -   read_pos_mouse(x,y,c); - } while (!(quest || (c!=0) || (d && anyone))); - if (quest)  key=testou(); - clic=false; - show_mouse(); -} - -void tmlieu(integer mli) -{ - integer cx, j, i, tail; -           str30 nomp; -             phrase st; - - -  if (mli== 26)  mli= 15; -  i=1; -  while ((i<8) && (v_lieu[i][mli]!=0))   -     { -       cx=v_lieu[i][mli]; -       deline(cx+c_tmlieu,st,tail); -       nomp= delig; -       while (length(nomp)<30)  nomp=nomp+' '; -       menut( depl[i], nomp); -       i=i+1; -     } -  nomp= "*                   "; -  for( cx= 7; cx >= i; cx --) menut( depl[cx], nomp); +void afdes(integer ad) { +	taffich(); +	dessin(ad); +	okdes = false; +} + +void tkey1(boolean d) { +	boolean quest; +	integer x, y, c; +	integer key; + +	hide_mouse(); +	fenat('K'); +	while (keypressed())  key = testou(); +	do { +		if (d)  tinke(); +		quest = keypressed(); +		read_pos_mouse(x, y, c); +	} while (!(quest || (c != 0) || (d && anyone))); +	if (quest)  key = testou(); +	clic = false; +	show_mouse(); +} + +void tmlieu(integer mli) { +	integer cx, j, i, tail; +	str30 nomp; +	phrase st; + + +	if (mli == 26)  mli = 15; +	i = 1; +	while ((i < 8) && (v_lieu[i][mli] != 0)) { +		cx = v_lieu[i][mli]; +		deline(cx + c_tmlieu, st, tail); +		nomp = delig; +		while (length(nomp) < 30)  nomp = nomp + ' '; +		menut(depl[i], nomp); +		i = i + 1; +	} +	nomp = "*                   "; +	for (cx = 7; cx >= i; cx --) menut(depl[cx], nomp);  }  /* NIVEAU 7 */ -void tlu(integer af,integer ob) -{ -  caff= 32; -  afdes(0); -  repon(6,ob+ 4000); -  repon(2,999); -  tkey1(true); -  caff= af; -  msg[3]= no_choice; -  crep= 998; +void tlu(integer af, integer ob) { +	caff = 32; +	afdes(0); +	repon(6, ob + 4000); +	repon(2, 999); +	tkey1(true); +	caff = af; +	msg[3] = no_choice; +	crep = 998;  } -void delin(integer n) -  { -      phrase s; -      integer t; +void delin(integer n) { +	phrase s; +	integer t; -    deline(n,s,t); -  } +	deline(n, s, t); +} -void affrep() -{ -  caff= s.mlieu; -  crep= s.mlieu; +void affrep() { +	caff = s.mlieu; +	crep = s.mlieu;  }  void mfouen()  { - integer cx; - - tmlieu(s.mlieu); - for( cx=1; cx <= 11; cx ++) menu_enable( men[cx]); -/* menu_enable( scacher); - menu_enable(menup, attacher); - menu_enable(menup, defoncer); - menu_enable(menup, dormir); - menu_enable(menup, entrer); - menu_enable(menup, fermer); - menu_enable(menup, frapper); - menu_enable(menup, manger); - menu_enable(menup, mettre); - menu_enable(menup, ouvrir); - menu_enable(menup, sortir);  */ - menut( sonder, " sonder   "); - menut( soulever, " soulever "); -} - -void atf3f8(integer& key) - { -   do { -     key= testou(); -   } while (!((key==61) || (key==66))); - } +	integer cx; -/* NIVEAU 6 */ - -void tperd() -{ - integer cx; - - initouv(); - ment= 0; - iouv= 0; - mchai= 0; - mfouen(); - if (! blo)  t11(21, cx); - perdu= true; - clsf1(); - boite( 60, 35, 400, 50, 15); - repon(9,crep); - clsf2(); - clsf3(); - col= false; - syn= false; - okdes= false; -} - -void tsort() -{ - integer cx; - - if ((iouv> 0) && (s.mlieu!= 0))  -  if (s.conf< 50)  s.conf= s.conf+ 2; -                else s.conf= s.conf+ (s.conf / 10); - for( cx= 1; cx <= 7; cx ++) touv[cx]= chr(0); - ment= 0; - iouv= 0; - mchai= 0; - debloc(s.mlieu); +	tmlieu(s.mlieu); +	for (cx = 1; cx <= 11; cx ++) menu_enable(men[cx]); +	/* menu_enable( scacher); +	 menu_enable(menup, attacher); +	 menu_enable(menup, defoncer); +	 menu_enable(menup, dormir); +	 menu_enable(menup, entrer); +	 menu_enable(menup, fermer); +	 menu_enable(menup, frapper); +	 menu_enable(menup, manger); +	 menu_enable(menup, mettre); +	 menu_enable(menup, ouvrir); +	 menu_enable(menup, sortir);  */ +	menut(sonder, " sonder   "); +	menut(soulever, " soulever ");  } -void st4(integer ob) -{ - crep= 997; - switch (ob) { -                case 114 : crep=109; break; -                case 110 : crep=107; break; -                case 158 : crep=113; break; -    case RANGE_5(152,156):case 150: -    case 100:case 157:case 160:case 161 : tlu(caff,ob); -    break; - } -} - -void cherjer(integer ob, boolean& d) -{ - integer cx; - - d= false; - for( cx= 1; cx <= 6; cx ++) d=(d || (ord(s.sjer[cx])== ob)); - if (s.derobj== ob)  d= true; +void atf3f8(integer &key) { +	do { +		key = testou(); +	} while (!((key == 61) || (key == 66)));  } -void st1sama() -{ - s.mlieu= 10; - affrep(); -} - -void modinv() -{ - integer cx, cy, tay, i, r; - phrase nom; - str30 nomp; - - cy= 0; - for( cx=1; cx <= 6; cx ++) -  if (s.sjer[cx]!= chr(0))  -    { -      cy= succ(integer,cy); -      r= (ord(s.sjer[cx])+ 400); -      deline(r-501+c_st41,nom,tay); -      nomp= delig; -      menut( invt[cy], nomp); -      menu_enable( invt[cx]); -    } - if (cy<6)  -    for( cx=cy+1; cx <= 6; cx ++) -      { -        menut( invt[cx], "                       "); -        menu_disable( invt[cx]); -      } -} - -void sparl(long_integer adr, long_integer rep) -{ -      const array<1,8,integer> haut -           = {{0,1,-3,6,-2,2,7,-1}}; - integer key, ad, tay, repint; -           phrase st; - -  repint=trunc(rep); -  hide_mouse(); -  deline( repint+c_paroles,st,tay); -  afftex(st,230,4,65,24,5); -  f3f8(); -  /*boite(43,30,90,19,15); -  gotoxy(7,5); -  write('F3: Encore'); -  gotoxy(7,6); -  write('F8: Stop');*/ -  key= 0; -  do { -    parole(repint, haut[caff- 69], 0); -    atf3f8(key); -  } while (!(key== 66)); -  hirs(); -  show_mouse(); -} - -void finfouil() -  { -    fouil= false; -    obpart= false; -    cs= 0; -    is= 0; -    mfouen(); -  } - -void mfoudi() -{ - integer cx; - - for( cx= 1; cx <= 7; cx ++) menu_disable( depl[cx]); - for( cx=1; cx <= 11; cx ++) menu_disable( men[cx]); -/* menu_disable(menup, scacher); - menu_disable(menup, attacher); - menu_disable(menup, defoncer); - menu_disable(menup, dormir); - menu_disable(menup, entrer); - menu_disable(menup, fermer); - menu_disable(menup, frapper); - menu_disable(menup, manger); - menu_disable(menup, mettre); - menu_disable(menup, ouvrir); - menu_disable(menup, sortir);  */ - menut( sonder, " -SUITE- "); - menut( soulever, " -STOP-  "); -} - -void mennor() -{ - menu_up(msg[3]); -} +/* NIVEAU 6 */ -void premtet() -{ - dessine(ades, 10, 80); - boite(18, 79, 155, 91, 15); +void tperd() { +	integer cx; + +	initouv(); +	ment = 0; +	iouv = 0; +	mchai = 0; +	mfouen(); +	if (! blo)  t11(21, cx); +	perdu = true; +	clsf1(); +	boite(60, 35, 400, 50, 15); +	repon(9, crep); +	clsf2(); +	clsf3(); +	col = false; +	syn = false; +	okdes = false; +} + +void tsort() { +	integer cx; + +	if ((iouv > 0) && (s.mlieu != 0)) +		if (s.conf < 50)  s.conf = s.conf + 2; +		else s.conf = s.conf + (s.conf / 10); +	for (cx = 1; cx <= 7; cx ++) touv[cx] = chr(0); +	ment = 0; +	iouv = 0; +	mchai = 0; +	debloc(s.mlieu); +} + +void st4(integer ob) { +	crep = 997; +	switch (ob) { +	case 114 : +		crep = 109; +		break; +	case 110 : +		crep = 107; +		break; +	case 158 : +		crep = 113; +		break; +	case RANGE_5(152, 156): +	case 150: +	case 100: +	case 157: +	case 160: +	case 161 : +		tlu(caff, ob); +		break; +	} +} + +void cherjer(integer ob, boolean &d) { +	integer cx; + +	d = false; +	for (cx = 1; cx <= 6; cx ++) d = (d || (ord(s.sjer[cx]) == ob)); +	if (s.derobj == ob)  d = true; +} + +void st1sama() { +	s.mlieu = 10; +	affrep(); +} + +void modinv() { +	integer cx, cy, tay, i, r; +	phrase nom; +	str30 nomp; + +	cy = 0; +	for (cx = 1; cx <= 6; cx ++) +		if (s.sjer[cx] != chr(0)) { +			cy = succ(integer, cy); +			r = (ord(s.sjer[cx]) + 400); +			deline(r - 501 + c_st41, nom, tay); +			nomp = delig; +			menut(invt[cy], nomp); +			menu_enable(invt[cx]); +		} +	if (cy < 6) +		for (cx = cy + 1; cx <= 6; cx ++) { +			menut(invt[cx], "                       "); +			menu_disable(invt[cx]); +		} +} + +void sparl(long_integer adr, long_integer rep) { +	const array<1, 8, integer> haut +	= {{0, 1, -3, 6, -2, 2, 7, -1}}; +	integer key, ad, tay, repint; +	phrase st; + +	repint = trunc(rep); +	hide_mouse(); +	deline(repint + c_paroles, st, tay); +	afftex(st, 230, 4, 65, 24, 5); +	f3f8(); +	/*boite(43,30,90,19,15); +	gotoxy(7,5); +	write('F3: Encore'); +	gotoxy(7,6); +	write('F8: Stop');*/ +	key = 0; +	do { +		parole(repint, haut[caff - 69], 0); +		atf3f8(key); +	} while (!(key == 66)); +	hirs(); +	show_mouse(); +} + +void finfouil() { +	fouil = false; +	obpart = false; +	cs = 0; +	is = 0; +	mfouen(); +} + +void mfoudi() { +	integer cx; + +	for (cx = 1; cx <= 7; cx ++) menu_disable(depl[cx]); +	for (cx = 1; cx <= 11; cx ++) menu_disable(men[cx]); +	/* menu_disable(menup, scacher); +	 menu_disable(menup, attacher); +	 menu_disable(menup, defoncer); +	 menu_disable(menup, dormir); +	 menu_disable(menup, entrer); +	 menu_disable(menup, fermer); +	 menu_disable(menup, frapper); +	 menu_disable(menup, manger); +	 menu_disable(menup, mettre); +	 menu_disable(menup, ouvrir); +	 menu_disable(menup, sortir);  */ +	menut(sonder, " -SUITE- "); +	menut(soulever, " -STOP-  "); +} + +void mennor() { +	menu_up(msg[3]); +} + +void premtet() { +	dessine(ades, 10, 80); +	boite(18, 79, 155, 91, 15);  }  /* NIVEAU 5 */ -void ajchai() -{ -      integer cx,cy,lderobj; - - -  cy= (acha+ pred(integer,pred(integer,mchai)* 10)); -  cx= 0; -  do { -   cx= cx+ 1; -  } while (!((cx> 9) || (tabdon[cy+ cx]== 0))); -  if (tabdon[cy+ cx]== 0)  -    { -      lderobj= s.derobj; -      tabdon[cy+ cx]=lderobj; -    } -    else crep= 192; +void ajchai() { +	integer cx, cy, lderobj; + + +	cy = (acha + pred(integer, pred(integer, mchai) * 10)); +	cx = 0; +	do { +		cx = cx + 1; +	} while (!((cx > 9) || (tabdon[cy + cx] == 0))); +	if (tabdon[cy + cx] == 0) { +		lderobj = s.derobj; +		tabdon[cy + cx] = lderobj; +	} else crep = 192; +} + +void ajjer(integer ob) { +	integer cx; + +	cx = 0; +	do { +		cx = cx + 1; +	} while (!((cx > 5) || (ord(s.sjer[cx]) == 0))); +	if (ord(s.sjer[cx]) == 0) { +		s.sjer[(cx)] = chr(ob); +		modinv(); +	} else crep = 139; +} + +void t1sama() {    /* On entre dans le manoir */ +	integer j, h, m; +	boolean d; + +	calch(j, h, m); +	if ((h < 5) && (s.mlieu > 18)) { +		cherjer(137, d); +		if (! d) {        /* On n'a pas les cl‚s et il est tard */ +			crep = 1511; +			tperd(); +		} else st1sama(); +	} else if (! s.ipre) {     /* c'est votre premiŠre fois ? */ +		ipers = 255; +		affper(ipers); +		caff = 77; +		afdes(0); +		boite(223, 47, 155, 91, 15); +		repon(2, 33); +		tkey1(false); +		mennor(); +		hide_mouse(); +		hirs(); +		premtet(); +		sparl(0, 140); +		dessine_rouleau(); +		pendule(); +		show_mouse(); +		s.mlieu = 0; +		affrep(); +		t5(10); +		if (! blo)  t11(0, m); +		ipers = 0; +		mpers = 0; +		s.ipre = true; +		/*chech;*/ +	} else  st1sama(); +} + +void t1vier() { +	s.mlieu = 17; +	affrep(); +} + +void t1neig() { +	inei = inei + 1; +	if (inei > 2) { +		crep = 1506; +		tperd(); +	} else { +		okdes = true; +		s.mlieu = 19; +		affrep(); +	} +} + +void t1deva() { +	inei = 0; +	s.mlieu = 21; +	affrep(); +} + +void t1derr() { +	s.mlieu = 22; +	affrep(); +} + +void t1deau() { +	crep = 1503; +	tperd(); +} + +void tctrm() { +	repon(2, (3000 + ctrm)); +	ctrm = 0;  } -void ajjer(integer ob) -{ - integer cx; - - cx= 0; - do { -  cx= cx+ 1; - } while (!((cx> 5) || (ord(s.sjer[cx])== 0))); - if (ord(s.sjer[cx])== 0)  - { -  s.sjer[(cx)]= chr(ob); -  modinv(); - } - else crep= 139; -} -void t1sama()      /* On entre dans le manoir */ -{ - integer j,h,m; - boolean d; - - calch(j,h,m); - if ((h< 5) && (s.mlieu> 18))  - { -  cherjer(137,d); -  if (! d)          /* On n'a pas les cl‚s et il est tard */ -  { -    crep= 1511; -    tperd(); -  } -  else st1sama(); - } - else - if (! s.ipre)          /* c'est votre premiŠre fois ? */ - { -  ipers= 255; -  affper(ipers); -  caff= 77; -  afdes(0); -  boite(223, 47, 155, 91, 15); -  repon(2,33); -  tkey1(false); -  mennor(); -  hide_mouse(); -  hirs(); -  premtet(); -  sparl(0,140); -  dessine_rouleau(); -  pendule(); -  show_mouse(); -  s.mlieu= 0; -  affrep(); -  t5(10); -  if (! blo)  t11(0, m); -  ipers= 0; -  mpers= 0; -  s.ipre= true; -  /*chech;*/ - } - else  st1sama(); -} - -void t1vier() -{ - s.mlieu= 17; - affrep(); -} - -void t1neig() -{ - inei= inei+ 1; - if (inei> 2)  - { -   crep= 1506; -   tperd(); - } - else - { -   okdes= true; -   s.mlieu= 19; -   affrep(); - } -} - -void t1deva() -{ - inei= 0; - s.mlieu= 21; - affrep(); -} - -void t1derr() -{ - s.mlieu = 22; - affrep(); -} +void quelquun() -void t1deau()  { - crep = 1503; - tperd(); -} +	integer haz, cx; -void tctrm() -{ - repon(2,(3000+ ctrm)); - ctrm= 0; +	if (imen)  erase_menu(); +	finfouil(); +	crep = 997; +L1: +	if (! cache) { +		if (crep == 997)  crep = 138; +		repon(2, crep); +		if (crep == 138)  parole(5, 2, 1); +		else parole(4, 4, 1); +		if (iouv == 0)  s.conf = s.conf + 2; +		else if (s.conf < 50)  s.conf = s.conf + 4; +		else +			s.conf = s.conf + (3 * (s.conf / 10)); +		tsort(); +		tmlieu(15); +		tip(ipers, cx); +		caff = 69 + cx; +		crep = caff; +		msg[3] = discut; +		msg[4] = disc[cx]; +		syn = true; +		col = true; +	} else { +		haz = hazard(1, 3); +		if (haz == 2) { +			cache = false; +			crep = 137; +			goto L1; +		} else { +			repon(2, 136); +			haz = (hazard(0, 4)) - 2; +			parole(3, haz, 1); +			clsf2(); +			person(); +			debloc(21); +			affrep(); +		} +	} +	if (imen)  draw_menu(); +} + +void tsuiv() { +	integer cx, tbcl; +	integer cl, cy; + +	cy = acha + ((mchai - 1) * 10) - 1; +	cx = 0; +	do { +		cx = cx + 1; +		cs = cs + 1; +		cl = cy + cs; +		tbcl = tabdon[cl]; +	} while (!((tbcl != 0) || (cs > 9))); +	if ((tbcl != 0) && (cs < 11)) { +		is = is + 1; +		caff = tbcl; +		crep = caff + 400; +		if (ipers != 0)  s.conf = s.conf + 2; +	} else { +		affrep(); +		finfouil(); +		if (cx > 9)  crep = 131; +	} +} + +void tfleche() { +	boolean qust; +	char touch; +	integer dummy, cd, xmo, ymo; + +	if (num == 9999)  return; +	fenat(chr(152)); +	rect = false; +	do { +		touch = '\0'; + +		do { +			mov_mouse(qust, touch); +			if (clic)  rect = (x_s < 256 * res) && (y_s < 176) && (y_s > 12); +			tinke(); +		} while (!(qust || rect || anyone)); + +		if (qust && (touch == '\103'))  dummy = do_alert(stpou, 1); +	} while (!((touch == '\73') || ((touch == '\104') && (x != 0) && (y != 0)) || +	           (anyone) || (rect))); +	if (touch == '\73')  iesc = true; +	if (rect) { +		x = x_s; +		y = y_s; +	}  } - -void quelquun() +void tcoord(integer sx)  { - integer haz,cx; - - if (imen)  erase_menu(); - finfouil(); - crep= 997; +	integer sy, ix, iy, cb, cy, ib; +	integer a, b, atdon; + + +	num = 0; +	crep = 999; +	a = 0; +	atdon = amzon + 3; +	cy = 0; +	while (cy < caff) { +		a = a + tabdon[atdon]; +		atdon = atdon + 4; +		cy = succ(integer, cy); +	} +	/*     for cy:=0 to caff-1 do +	          a:=a+ tabdon[amzon+3+4*cy]; +	     b:= peek(amzon+3+4*caff); */ +	b = tabdon[atdon]; +	if (b == 0)  goto L1; +	a = a + fleche; +	cb = 0; +	for (cy = 0; cy <= (sx - 2); cy ++) { +		ib = (tabdon[a + cb] << 8) + tabdon[succ(integer, a + cb)]; +		cb = cb + (ib * 4) + 2; +	} +	ib = (tabdon[a + cb] << 8) + tabdon[succ(integer, a + cb)]; +	if (ib == 0)  goto L1; +	cy = 1; +	do { +		cb = cb + 2; +		sx = tabdon[a + cb] * res; +		sy = tabdon[succ(integer, a + cb)]; +		cb = cb + 2; +		ix = tabdon[a + cb] * res; +		iy = tabdon[succ(integer, a + cb)]; +		cy = cy + 1; +	} while (!(((x >= sx) && (x <= ix) && (y >= sy) && (y <= iy)) +	           || (cy > ib))); +	if ((x >= sx) && (x <= ix) && (y >= sy) && (y <= iy)) + +	{ +		num = cy - 1; +		return; +	}  L1: - if (! cache)  - { -  if (crep== 997)  crep= 138; -  repon(2,crep); -  if (crep== 138)  parole(5, 2, 1); else parole(4, 4, 1); -  if (iouv== 0)  s.conf= s.conf+ 2; else -   if (s.conf< 50)  s.conf= s.conf+ 4; else -    s.conf= s.conf+ (3* (s.conf / 10)); -  tsort(); -  tmlieu(15); -  tip(ipers,cx); -  caff= 69+ cx; -  crep= caff; -  msg[3]= discut; -  msg[4]= disc[cx]; -  syn= true; -  col= true; - } - else - { -  haz= hazard(1, 3); -  if (haz== 2)  -  { -   cache= false; -   crep= 137; -   goto L1; -  } -  else -  { -   repon(2, 136); -   haz= (hazard(0, 4))- 2; -   parole(3, haz, 1); -   clsf2(); -   person(); -   debloc(21); -   affrep(); -  } - } - if (imen)  draw_menu(); -} - -void tsuiv() -{ - integer cx,tbcl; - integer cl,cy; - - cy= acha+ ((mchai- 1)* 10)- 1; - cx= 0; - do { -  cx= cx+ 1; -  cs= cs+ 1; -  cl= cy+ cs; -  tbcl= tabdon[cl]; - } while (!((tbcl != 0) || (cs> 9))); - if ((tbcl != 0) && (cs< 11))  - { -  is= is+ 1; -  caff= tbcl; -  crep= caff+ 400; -  if (ipers!= 0)  s.conf= s.conf+ 2; - } - else - { -  affrep(); -  finfouil(); -  if (cx> 9)  crep= 131; - } -} - -void tfleche() -{ - boolean qust; - char touch; - integer dummy,cd,xmo,ymo; - - if (num== 9999)  return; - fenat(chr(152)); - rect= false; - do { -  touch='\0'; - -  do { -   mov_mouse(qust,touch); -   if (clic)  rect=(x_s<256*res) && (y_s<176) && (y_s>12); -   tinke(); -  } while (!(qust || rect || anyone)); - -  if (qust && (touch=='\103'))  dummy=do_alert(stpou,1); - } while (!((touch=='\73') || ((touch== '\104') && (x!= 0) && (y!=0)) || -       (anyone) || (rect))); - if (touch=='\73')  iesc= true; - if (rect)  -   { -     x=x_s; -     y=y_s; -   } +	crep = 997;  } -void tcoord(integer sx) -   { -         integer sy,ix,iy,cb,cy,ib; -         integer a, b, atdon; - - -     num= 0; -     crep= 999; -     a=0; -     atdon=amzon+3; -     cy= 0; -     while (cy<caff)  -        { -          a=a+tabdon[atdon]; -          atdon=atdon+4; -          cy= succ(integer,cy); -        } -/*     for cy:=0 to caff-1 do -          a:=a+ tabdon[amzon+3+4*cy]; -     b:= peek(amzon+3+4*caff); */ -     b= tabdon[atdon]; -     if (b== 0)  goto L1; -     a= a+ fleche; -     cb= 0; -     for( cy= 0; cy <= (sx-2); cy ++) -      { -        ib= (tabdon[a+cb] << 8)+ tabdon[succ(integer,a+ cb)]; -        cb= cb+ (ib* 4)+ 2; -      } -      ib= (tabdon[a+cb] << 8)+ tabdon[succ(integer,a+ cb)]; -      if (ib== 0)  goto L1; -      cy= 1; -      do { -        cb= cb+ 2; -        sx= tabdon[a+ cb] * res; -        sy= tabdon[succ(integer,a+ cb)]; -        cb= cb+ 2; -        ix= tabdon[a+ cb] * res; -        iy= tabdon[succ(integer,a+ cb)]; -        cy= cy+ 1; -      } while (!(((x>= sx) && (x<= ix) && (y>= sy) && (y<= iy)) -             || (cy> ib))); -      if ((x>= sx) && (x<= ix) && (y>= sy) && (y<= iy)) - -          { -            num= cy- 1; -            return; -          } -L1: -     crep= 997; -   } +void st7(integer ob) { +	crep = 183; +	if ((ob == 116) || (ob == 144))  crep = 104; +	if ((ob == 126) || (ob == 111))  crep = 108; +	if (ob == 132)  crep = 111; +	if (ob == 142)  crep = 112; +	if (crep == 183)  st4(ob); +} +void treg(integer ob) { +	integer mdes; -void st7(integer ob) -{ - crep= 183; - if ((ob== 116) || (ob== 144))  crep= 104; - if ((ob== 126) || (ob== 111))  crep= 108; - if (ob== 132)  crep= 111; - if (ob== 142)  crep= 112; - if (crep== 183)  st4(ob); +	mdes = caff; +	caff = ob; +	if (((caff > 29) && (caff < 33)) || (caff == 144) || +	        (caff == 147) || (caff == 149) || (msg[4] == sregarder)) { +		afdes(0); +		if ((caff > 29) && (caff < 33))  repon(2, caff); +		else repon(2, (caff + 400)); +		tkey1(true); +		caff = mdes; +		msg[3] = 0; +		crep = 998; +	} else { +		obpart = true; +		crep = caff + 400; +		mfoudi(); +	}  } -void treg(integer ob) -{ - integer mdes; - - mdes= caff; - caff= ob; - if (((caff> 29) && (caff< 33)) || (caff== 144) || -    (caff== 147) || (caff== 149) || (msg[4]== sregarder))  - { -  afdes(0); -  if ((caff> 29) && (caff< 33))  repon(2,caff); else repon(2,(caff+ 400)); -  tkey1(true); -  caff= mdes; -  msg[3]= 0; -  crep= 998; - } - else - { -  obpart= true; -  crep= caff+ 400; -  mfoudi(); - } -} - -void avpoing(integer& ob) -{ - crep= 999; - if (s.derobj!= 0)  ajjer(s.derobj); - if (crep!= 139)  - { -  modobj(ob+ 400); -  s.derobj= ob; -  ob= 0; - } +void avpoing(integer &ob) { +	crep = 999; +	if (s.derobj != 0)  ajjer(s.derobj); +	if (crep != 139) { +		modobj(ob + 400); +		s.derobj = ob; +		ob = 0; +	}  } -void rechai(integer& ch) -{ - integer cx; +void rechai(integer &ch) { +	integer cx; - cx= s.mlieu; - if (s.mlieu== 16)  cx= 14; - ch= tabdon[achai+ (cx* 7)+ pred(integer,num)]; +	cx = s.mlieu; +	if (s.mlieu == 16)  cx = 14; +	ch = tabdon[achai + (cx * 7) + pred(integer, num)];  } -void t23coul(integer& l) -{ - boolean d; +void t23coul(integer &l) { +	boolean d; - cherjer(143,d); - l= 14; - if (! d)  - { -  crep= 1512; -  tperd(); - } +	cherjer(143, d); +	l = 14; +	if (! d) { +		crep = 1512; +		tperd(); +	}  } -void maivid() -{ - s.derobj= 0; - modobj(500); +void maivid() { +	s.derobj = 0; +	modobj(500);  } -void st13(integer ob) -{ - if ((ob== 114) || (ob== 116) || (ob== 126) || (ob== 132) || - (ob== 111) || (ob== 106) || (ob== 102) || (ob== 100) || - (ob== 110) || (ob== 153) || (ob== 154) || (ob== 155) || - (ob== 156) || (ob== 157) || (ob== 144) || (ob== 158) || - (ob== 150) || (ob== 152))  crep= 999; else crep= 105; +void st13(integer ob) { +	if ((ob == 114) || (ob == 116) || (ob == 126) || (ob == 132) || +	        (ob == 111) || (ob == 106) || (ob == 102) || (ob == 100) || +	        (ob == 110) || (ob == 153) || (ob == 154) || (ob == 155) || +	        (ob == 156) || (ob == 157) || (ob == 144) || (ob == 158) || +	        (ob == 150) || (ob == 152))  crep = 999; +	else crep = 105;  } -void aldepl() -{ -      integer dummy; +void aldepl() { +	integer dummy; -  dummy=do_alert("[1][Alors, utilisez le menu DEP...][ok]",1); +	dummy = do_alert("[1][Alors, utilisez le menu DEP...][ok]", 1);  } diff --git a/engines/mortevielle/mort.cpp b/engines/mortevielle/mort.cpp index 1fbd91c648..7d5f33c2ab 100644 --- a/engines/mortevielle/mort.cpp +++ b/engines/mortevielle/mort.cpp @@ -2,10 +2,10 @@ - /*$v-*/ - /*$k-*/ - /*$x-*/ - /*$c-*/ +/*$v-*/ +/*$k-*/ +/*$x-*/ +/*$c-*/  #include "var_mor.h"          /* les variables */  #include "keyboard.h"          /* la gestion du clavier */ @@ -18,7 +18,7 @@  #include "parole.h"          /* les fonctions de la parole */  #include "alert.h"  #include "parole2.h"          /* les fonctions de la parole */ - /*  debug              le debugging */ +/*  debug              le debugging */  #include "ques.h"          /* les questions */  #include "menu.h"          /* les fonctions du menu */  #include "mor.h"          /* divers */ @@ -31,94 +31,93 @@  /*  ecrihexa            utilitaire */ -void divers(integer np,boolean b) -{ -  teskbd(); -  do { -    parole(np, 0, 0); -    atf3f8(key); -    if (newgd!=gd)  -       { -         gd=newgd; -         hirs(); -         aff50(b); -       } -  } while (!(key== 66)); +void divers(integer np, boolean b) { +	teskbd(); +	do { +		parole(np, 0, 0); +		atf3f8(key); +		if (newgd != gd) { +			gd = newgd; +			hirs(); +			aff50(b); +		} +	} while (!(key == 66));  }  /* NIVEAU 0 */ -int main(int argc, const char* argv[]) -{ -/*init_debug;*/ -/*  ecri_seg;*/ -  pio_initialize(argc, argv); -  gd=cga; -  newgd= gd; -  zuul= false; -  tesok= false; -  chartex(); -  charpal(); -  charge_cfiph(); -  charge_cfiec(); -  zzuul(adcfiec+161,0,1644); -  c_zzz= 1; -  init_nbrepm(); -  init_mouse(); -/*  crep:=memw[$7f00:0]; -  memw[$7f00:0]:= crep+1; -  if (memw[$7f00:0]<> crep+1) then -     begin -       hirs; -       show_mouse; -       crep:=do_alert('[1][ 512 k  minimum requis  !!][OK]',1); -       clrscr; -       halt; -     end; -  if (Dseg+$1000>adbruit5) then -     begin -       hirs; -       show_mouse; -       crep:=do_alert('[1][ Il ne reste pas assez de |place m‚moire  !!][OK]',1); -       clrscr; -       halt; -     end;*/ -  init_lieu(); -  arret= false; -  sonoff= false; -  f2_all= false; -  textcolor(9); -  teskbd(); -  dialpre(); -  newgd= gd; -  teskbd(); -  if (newgd!=gd)  gd=newgd; -  hirs(); -  ades= 0x7000; -  aff50(false); -  mlec= 0; -  divers(142,false); +int main(int argc, const char *argv[]) { +	/*init_debug;*/ +	/*  ecri_seg;*/ +	pio_initialize(argc, argv); +	gd = cga; +	newgd = gd; +	zuul = false; +	tesok = false; +	chartex(); +	charpal(); +	charge_cfiph(); +	charge_cfiec(); +	zzuul(adcfiec + 161, 0, 1644); +	c_zzz = 1; +	init_nbrepm(); +	init_mouse(); +	/*  crep:=memw[$7f00:0]; +	  memw[$7f00:0]:= crep+1; +	  if (memw[$7f00:0]<> crep+1) then +	     begin +	       hirs; +	       show_mouse; +	       crep:=do_alert('[1][ 512 k  minimum requis  !!][OK]',1); +	       clrscr; +	       halt; +	     end; +	  if (Dseg+$1000>adbruit5) then +	     begin +	       hirs; +	       show_mouse; +	       crep:=do_alert('[1][ Il ne reste pas assez de |place m‚moire  !!][OK]',1); +	       clrscr; +	       halt; +	     end;*/ +	init_lieu(); +	arret = false; +	sonoff = false; +	f2_all = false; +	textcolor(9); +	teskbd(); +	dialpre(); +	newgd = gd; +	teskbd(); +	if (newgd != gd)  gd = newgd; +	hirs(); +	ades = 0x7000; +	aff50(false); +	mlec = 0; +	divers(142, false); -  ani50(); -  divers(143,true); -  suite(); -  music(); -  adzon(); -  takesav(0); -  if (rech_cfiec)  charge_cfiec(); -  for( crep=1; crep <= c_zzz; crep ++) zzuul(adcfiec+161,0,1644); -  charge_bruit5(); -  init_menu(); +	ani50(); +	divers(143, true); +	suite(); +	music(); +	adzon(); +	takesav(0); +	if (rech_cfiec)  charge_cfiec(); +	for (crep = 1; crep <= c_zzz; crep ++) zzuul(adcfiec + 161, 0, 1644); +	charge_bruit5(); +	init_menu(); -  theure(); -  dprog(); -  hirs(); -  dessine_rouleau(); -  show_mouse(); -  do { tjouer(); } while (!arret); -  hide_mouse(); -  clrscr; -/*out_debug;*/ -  return EXIT_SUCCESS; +	theure(); +	dprog(); +	hirs(); +	dessine_rouleau(); +	show_mouse(); +	do { +		tjouer(); +	} while (!arret); +	hide_mouse(); +	clrscr; +	/*out_debug;*/ +	return EXIT_SUCCESS;  } diff --git a/engines/mortevielle/mouse.h b/engines/mortevielle/mouse.h index 3f250d91e4..d1de4b79d2 100644 --- a/engines/mortevielle/mouse.h +++ b/engines/mortevielle/mouse.h @@ -2,45 +2,42 @@ const integer m_arrow = 0;  const integer m_point_hand = 1;  boolean int_m, -clic; +        clic;  integer m_show, -x_s, -y_s, -p_o_s, -mouse_shwn; +        x_s, +        y_s, +        p_o_s, +        mouse_shwn; -matrix<0,5,0,11,integer> s_s; +matrix<0, 5, 0, 11, integer> s_s; -void init_mouse() -{ -      integer i, j; -       registres reg; +void init_mouse() { +	integer i, j; +	registres reg; -  mouse_shwn= 0; -  x_s= 0; -  y_s= 0; -  p_o_s= 0; -  /*int_m:= False;*/ -  clic= false; -  m_show= m_arrow; -  if ((memw[0xcc]==0) && (memw[0xce]==0))  int_m= false; -  if (int_m)  -   { -    reg.ax= 0; -    intr(0x33,reg); -    int_m= (reg.ax==-1); -    if (int_m)  -      { -         { -           reg.ax=4; -           reg.cx=0; -           reg.dx=0; -         } -       intr(0x33,reg); -     } -   } +	mouse_shwn = 0; +	x_s = 0; +	y_s = 0; +	p_o_s = 0; +	/*int_m:= False;*/ +	clic = false; +	m_show = m_arrow; +	if ((memw[0xcc] == 0) && (memw[0xce] == 0))  int_m = false; +	if (int_m) { +		reg.ax = 0; +		intr(0x33, reg); +		int_m = (reg.ax == -1); +		if (int_m) { +			{ +				reg.ax = 4; +				reg.cx = 0; +				reg.dx = 0; +			} +			intr(0x33, reg); +		} +	}  }  /*procedure change_mouse( t : integer ); @@ -58,412 +55,405 @@ begin    end;  end;  */ -void hide_mouse() -{ -      integer i,j,k,ps,ds; -      boolean imp; +void hide_mouse() { +	integer i, j, k, ps, ds; +	boolean imp; -  mouse_shwn = pred(integer,mouse_shwn); -  if (mouse_shwn==0)  -     { -       imp= odd(y_s); -       j=p_o_s; -       switch (gd) { -             case cga : { -                     k=0; -                     j=((cardinal)y_s >> 1) * 80+ ((cardinal)x_s >> 2); -                     do { -                       memw[0xb000+j]=s_s[0][k]; -                       memw[0xb800+j+2]=s_s[1][k]; -                       memw[0xba00+j]=s_s[2][k]; -                       memw[0xba00+j+2]=s_s[3][k]; -                       j=j+80; -                       k= succ(integer,k); -                     } while (!(k>=5)); -                   } -                   break; -                case ams : { -                        for( i=0; i <= 3; i ++) -                        { -                          port[0x3dd]= 1 << i; -                          k=0; -                          j=p_o_s; -                          do { -                            if (imp)  -                              { -                                memw[0xb800+j]=s_s[i][k]; -                                j=j+80-0x2000; -                              } -                             else -                              { -                                memw[0xb800+j]=s_s[i][k]; -                                j=j+0x2000; -                              } -                            imp=! imp; -                            k= succ(integer,k); -                          } while (!(k>=8)); -                        } -                      } -                      break; -                case ega : { -                        port[0x3c4]=2; -                        port[0x3ce]=8; -                        port[0x3cf]=255; -                        i= 0; -                        do { -                          port[0x3c5]= 1 << i; -                          k=0; -                          j=p_o_s; -                          do { -                            ps=mem[0xa000+j]; -                            mem[0xa000+j]=lo(s_s[i][k]); -                            ps=mem[0xa000+j+1]; -                            mem[0xa000+j+1]=hi(s_s[i][k]); -                            j=j+80; -                            k= succ(integer,k); -                          } while (!(k>=8)); -                          i= i+1; -                        } while (!(i==4)); -                      } -                      break; -                case her : { -                        j= ((cardinal)y_s >> 1) *80+((cardinal)x_s >> 3); -                        for( i=0; i <= 5; i ++) -                         { -                           for( k=0; k <= 3; k ++) memw[0xb000+k*0x200+j]=s_s[i][k]; -                           j=j+80; -                         } -                      } -                      break; -                case tan : { -                        j= ((cardinal)y_s >> 2) *160+((cardinal)x_s >> 1); -                        k=0; -                        do { -                          for( i=0; i <= 3; i ++) -                           { -                             memw[0xb800+0x200*i+j]=s_s[k][i+(k << 2)]; -                             memw[0xb800+0x200*i+j+2]=s_s[k+3][i+(k << 2)]; -                           } -                          j=j+160; -                          k= succ(integer,k); -                        } while (!(k==3)); -                      } -                      break; +	mouse_shwn = pred(integer, mouse_shwn); +	if (mouse_shwn == 0) { +		imp = odd(y_s); +		j = p_o_s; +		switch (gd) { +		case cga : { +			k = 0; +			j = ((cardinal)y_s >> 1) * 80 + ((cardinal)x_s >> 2); +			do { +				memw[0xb000 + j] = s_s[0][k]; +				memw[0xb800 + j + 2] = s_s[1][k]; +				memw[0xba00 + j] = s_s[2][k]; +				memw[0xba00 + j + 2] = s_s[3][k]; +				j = j + 80; +				k = succ(integer, k); +			} while (!(k >= 5)); +		} +		break; +		case ams : { +			for (i = 0; i <= 3; i ++) { +				port[0x3dd] = 1 << i; +				k = 0; +				j = p_o_s; +				do { +					if (imp) { +						memw[0xb800 + j] = s_s[i][k]; +						j = j + 80 - 0x2000; +					} else { +						memw[0xb800 + j] = s_s[i][k]; +						j = j + 0x2000; +					} +					imp = ! imp; +					k = succ(integer, k); +				} while (!(k >= 8)); +			} +		} +		break; +		case ega : { +			port[0x3c4] = 2; +			port[0x3ce] = 8; +			port[0x3cf] = 255; +			i = 0; +			do { +				port[0x3c5] = 1 << i; +				k = 0; +				j = p_o_s; +				do { +					ps = mem[0xa000 + j]; +					mem[0xa000 + j] = lo(s_s[i][k]); +					ps = mem[0xa000 + j + 1]; +					mem[0xa000 + j + 1] = hi(s_s[i][k]); +					j = j + 80; +					k = succ(integer, k); +				} while (!(k >= 8)); +				i = i + 1; +			} while (!(i == 4)); +		} +		break; +		case her : { +			j = ((cardinal)y_s >> 1) * 80 + ((cardinal)x_s >> 3); +			for (i = 0; i <= 5; i ++) { +				for (k = 0; k <= 3; k ++) memw[0xb000 + k * 0x200 + j] = s_s[i][k]; +				j = j + 80; +			} +		} +		break; +		case tan : { +			j = ((cardinal)y_s >> 2) * 160 + ((cardinal)x_s >> 1); +			k = 0; +			do { +				for (i = 0; i <= 3; i ++) { +					memw[0xb800 + 0x200 * i + j] = s_s[k][i + (k << 2)]; +					memw[0xb800 + 0x200 * i + j + 2] = s_s[k + 3][i + (k << 2)]; +				} +				j = j + 160; +				k = succ(integer, k); +			} while (!(k == 3)); +		} +		break; -       }     /* case Gd */ -     } +		}     /* case Gd */ +	}  } -void show_mouse() -{ -      integer i, j, k, l, -      ps,ds; -      boolean imp; -      char c; +void show_mouse() { +	integer i, j, k, l, +	        ps, ds; +	boolean imp; +	char c; -  mouse_shwn = mouse_shwn +1; -  if (mouse_shwn!=1)  return; -  j=p_o_s; -  imp= odd(y_s); -  i=x_s & 7; -  switch (gd) { -             case cga : { -                     k=0; -                     j=((cardinal)y_s >> 1) * 80+ ((cardinal)x_s >> 2); -                     do { -                       s_s[0][k]=memw[0xb800+j]; -                       s_s[1][k]=memw[0xb800+j+2]; -                       s_s[2][k]=memw[0xba00+j]; -                       s_s[3][k]=memw[0xba00+j+2]; -                       j=j+80; -                       k= succ(integer,k); -                     } while (!(k>=5)); -                   } -                   break; -          case ams : { -                  for( i=0; i <= 3; i ++) -                        { -                          j=p_o_s; -                          imp= odd(y_s); -                          port[0x3de]= i; -                          k=0; -                          do { -                            if (imp)  -                              { -                                s_s[i][k]=memw[0xb800+j]; -                                j=j+80-0x2000; -                              } -                             else -                              { -                                s_s[i][k]=memw[0xb800+j]; -                                j=j+0x2000; -                              } -                            imp=! imp; -                            k= succ(integer,k); -                          } while (!(k>=8)); -                        } -                } -                break; -          case ega : { -                  port[0x3ce]=4; -                  l= 0; -                  do { -                    port[0x3cf]= l; -                    k=0; -                    j=p_o_s; -                    do { -                      s_s[l][k]= mem[0xa000+j]+(mem[0xa000+succ(integer,j)] << 8); -                      j=j+80; -                      k= succ(integer,k); -                    } while (!(k>=8)); -                    l= l+1; -                  } while (!(l==4)); -                } -                break; -          case her : { -                  j= ((cardinal)y_s >> 1) *80+((cardinal)x_s >> 3); -                  for( i=0; i <= 5; i ++) -                   { -                     for( k=0; k <= 3; k ++) s_s[i][k]=memw[0xb000+k*0x200+j]; -                     j=j+80; -                   } -                } -                break; -          case tan : { -                  j= ((cardinal)y_s >> 2)*160+((cardinal)x_s >> 1); -                  k=0; -                  do { -                    for( i=0; i <= 3; i ++) -                      { -                        s_s[k][i+(k << 2)]=memw[0xb800+0x200*i+j]; -                        s_s[k+3][i+(k << 2)]=memw[0xb800+0x200*i+j+2]; -                      } -                    j=j+160; -                    k= succ(integer,k); -                  } while (!(k==3)); -                } -                break; -  }    /*  case Gd   */ -  affput(2,gd,x_s,y_s,0,0); +	mouse_shwn = mouse_shwn + 1; +	if (mouse_shwn != 1)  return; +	j = p_o_s; +	imp = odd(y_s); +	i = x_s & 7; +	switch (gd) { +	case cga : { +		k = 0; +		j = ((cardinal)y_s >> 1) * 80 + ((cardinal)x_s >> 2); +		do { +			s_s[0][k] = memw[0xb800 + j]; +			s_s[1][k] = memw[0xb800 + j + 2]; +			s_s[2][k] = memw[0xba00 + j]; +			s_s[3][k] = memw[0xba00 + j + 2]; +			j = j + 80; +			k = succ(integer, k); +		} while (!(k >= 5)); +	} +	break; +	case ams : { +		for (i = 0; i <= 3; i ++) { +			j = p_o_s; +			imp = odd(y_s); +			port[0x3de] = i; +			k = 0; +			do { +				if (imp) { +					s_s[i][k] = memw[0xb800 + j]; +					j = j + 80 - 0x2000; +				} else { +					s_s[i][k] = memw[0xb800 + j]; +					j = j + 0x2000; +				} +				imp = ! imp; +				k = succ(integer, k); +			} while (!(k >= 8)); +		} +	} +	break; +	case ega : { +		port[0x3ce] = 4; +		l = 0; +		do { +			port[0x3cf] = l; +			k = 0; +			j = p_o_s; +			do { +				s_s[l][k] = mem[0xa000 + j] + (mem[0xa000 + succ(integer, j)] << 8); +				j = j + 80; +				k = succ(integer, k); +			} while (!(k >= 8)); +			l = l + 1; +		} while (!(l == 4)); +	} +	break; +	case her : { +		j = ((cardinal)y_s >> 1) * 80 + ((cardinal)x_s >> 3); +		for (i = 0; i <= 5; i ++) { +			for (k = 0; k <= 3; k ++) s_s[i][k] = memw[0xb000 + k * 0x200 + j]; +			j = j + 80; +		} +	} +	break; +	case tan : { +		j = ((cardinal)y_s >> 2) * 160 + ((cardinal)x_s >> 1); +		k = 0; +		do { +			for (i = 0; i <= 3; i ++) { +				s_s[k][i + (k << 2)] = memw[0xb800 + 0x200 * i + j]; +				s_s[k + 3][i + (k << 2)] = memw[0xb800 + 0x200 * i + j + 2]; +			} +			j = j + 160; +			k = succ(integer, k); +		} while (!(k == 3)); +	} +	break; +	}    /*  case Gd   */ +	affput(2, gd, x_s, y_s, 0, 0);  } -void pos_mouse(integer x,integer y) -{ -      registres reg; +void pos_mouse(integer x, integer y) { +	registres reg; -  if (x>314*res)  x=314*res; -           else if (x<0)  x=0; -  if (y>199)  y=199; -           else if (y<0)  y=0; -  if ((x==x_s) && (y==y_s))  return; -  if (int_m)  -     { -         { -           reg.ax=4; -           reg.cx=x; -           reg.dx=y; -         } -       intr(0x33,reg); -     } -  hide_mouse(); -  x_s=x; -  y_s=y; -  switch (gd) { -          case ams : { -                  p_o_s=((cardinal)y_s >> 1)*80+((cardinal)x_s >> 3)+(y_s & 1)*0x2000; -                } -                break; -          /*cga : begin -                  P_O_S:=(Y_S shr 1)*80+X_S shr 2+(Y_S and 1)*$2000; -                end;*/ -          case ega : { -                  p_o_s=y_s*80+((cardinal)x_s >> 3); -                } -                break; -  }    /*  case Gd   */ -  show_mouse(); +	if (x > 314 * res)  x = 314 * res; +	else if (x < 0)  x = 0; +	if (y > 199)  y = 199; +	else if (y < 0)  y = 0; +	if ((x == x_s) && (y == y_s))  return; +	if (int_m) { +		{ +			reg.ax = 4; +			reg.cx = x; +			reg.dx = y; +		} +		intr(0x33, reg); +	} +	hide_mouse(); +	x_s = x; +	y_s = y; +	switch (gd) { +	case ams : { +		p_o_s = ((cardinal)y_s >> 1) * 80 + ((cardinal)x_s >> 3) + (y_s & 1) * 0x2000; +	} +	break; +	/*cga : begin +	        P_O_S:=(Y_S shr 1)*80+X_S shr 2+(Y_S and 1)*$2000; +	      end;*/ +	case ega : { +		p_o_s = y_s * 80 + ((cardinal)x_s >> 3); +	} +	break; +	}    /*  case Gd   */ +	show_mouse();  } -void read_pos_mouse(integer& x,integer& y,integer& c) -{ -       registres reg; +void read_pos_mouse(integer &x, integer &y, integer &c) { +	registres reg; -  if (int_m)  -     { -       reg.ax=3; -       intr(0x33,reg); -       x=reg.cx; -       y=reg.dx; -       c=reg.bx; -     } -    else -     { -       c=0; -       x=x_s; -       y=y_s; -     } +	if (int_m) { +		reg.ax = 3; +		intr(0x33, reg); +		x = reg.cx; +		y = reg.dx; +		c = reg.bx; +	} else { +		c = 0; +		x = x_s; +		y = y_s; +	}  } -void mov_mouse(boolean& funct, char& key) -   { -         boolean p_key; -         char in1, in2; -         integer x,y,cx,cy,cd; -         registres reg; +void mov_mouse(boolean &funct, char &key) { +	boolean p_key; +	char in1, in2; +	integer x, y, cx, cy, cd; +	registres reg; -     if (int_m)  -     { -       reg.ax=3; -       intr(0x33,reg); -       x=reg.cx; -       y=reg.dx; -       cd=reg.bx; -       pos_mouse(x,y); -       if (cd!=0)  -          { -            clic=true; -            return; -          } -     } -     funct=false; -     key='\377'; -     p_key=keypressed(); -     while (p_key)  -        { -          input >> kbd >> in1; -          read_pos_mouse(cx, cy, cd); -          switch (upcase(in1)) { -                         case '4' : cx= cx - 8; break; -                         case '2' : cy= cy + 8; break; -                         case '6' : cx= cx + 8; break; -                         case '8' : cy= cy - 8; break; -                         case '7' : { -                                 cy=1; -                                 cx=1; -                               } -                               break; -                         case '1' : { -                                 cx=1; -                                 cy=190; -                               } -                               break; -                         case '9' : { -                                 cx=315*res; -                                 cy=1; -                               } -                               break; -                         case '3' : { -                                 cy=190; -                                 cx=315*res; -                               } -                               break; -                         case '5' : { -                                 cy=100; -                                 cx=155*res; -                               } -                               break; -                    case ' ': case '\15' : { -                                 clic=true; -                                 return; -                               } -                               break; -                         case '\33' : { -                                 p_key=keypressed(); -                                 if (p_key)  -                                    { -                                      input >> kbd >> in2; -                                      switch (in2) { -                                               case 'K' : cx= pred(integer,cx); break; -                                               case 'P' : cy= succ(integer,cy); break; -                                               case 'M' : cx= cx + 2; break; -                                               case 'H' : cy= pred(integer,cy); break; -                                               case RANGE_10(';','D') : { -                                                            funct= true; -                                                            key=in2; -                                                            return; -                                                          } -                                                          break; -                                               case 'G' : { -                                                       cx=cx-1; -                                                       cy=cy-1; -                                                     } -                                                     break; -                                               case 'I' : { -                                                       cx=cx+1; -                                                       cy=cy-1; -                                                     } -                                                     break; -                                               case 'O' : { -                                                       cx=cx-1; -                                                       cy=cy+1; -                                                     } -                                                     break; -                                               case 'Q' : { -                                                       cx=cx+1; -                                                       cy=cy+1; -                                                     } -                                                     break; -                                            }    /* case */ -                                    } -                               } -                               break; -                         case 'I' : { -                                 cx= res*32; -                                 cy= 8; -                               } -                               break; -                         case 'D' : { -                                 cx= 80*res; -                                 cy= 8; -                               } -                               break; -                         case 'A' : { -                                 cx= 126*res; -                                 cy= 8; -                               } -                               break; -                         case 'S' : { -                                 cx= 174*res; -                                 cy= 8; -                               } -                               break; -                         case 'P' : { -                                 cx= 222*res; -                                 cy= 8; -                               } -                               break; -                         case 'F' : { -                                 cx= res*270; -                                 cy= 8; -                               } -                               break; -                         case '\23' : { -                                 sonoff= ! sonoff; -                                 return; -                               } -                               break; -                         case '\26' : { -                                 zuul=true; -                                 return; -                               } -                               break; -                         case '\24' : {           /* ^T => mode tandy */ -                                 funct= true; -                                 key= '\11'; -                               } -                               break; -                          case '\10' : {           /* ^H => mode Hercule */ -                                 funct= true; -                                 key= '\7'; -                               } -                               break; -                    case '\1':case '\3':case '\5' : { -                                 funct= true; -                                 key=in1; -                               } -                               break; -                } -          pos_mouse(cx, cy); -          p_key=keypressed(); -        } -   } +	if (int_m) { +		reg.ax = 3; +		intr(0x33, reg); +		x = reg.cx; +		y = reg.dx; +		cd = reg.bx; +		pos_mouse(x, y); +		if (cd != 0) { +			clic = true; +			return; +		} +	} +	funct = false; +	key = '\377'; +	p_key = keypressed(); +	while (p_key) { +		input >> kbd >> in1; +		read_pos_mouse(cx, cy, cd); +		switch (upcase(in1)) { +		case '4' : +			cx = cx - 8; +			break; +		case '2' : +			cy = cy + 8; +			break; +		case '6' : +			cx = cx + 8; +			break; +		case '8' : +			cy = cy - 8; +			break; +		case '7' : { +			cy = 1; +			cx = 1; +		} +		break; +		case '1' : { +			cx = 1; +			cy = 190; +		} +		break; +		case '9' : { +			cx = 315 * res; +			cy = 1; +		} +		break; +		case '3' : { +			cy = 190; +			cx = 315 * res; +		} +		break; +		case '5' : { +			cy = 100; +			cx = 155 * res; +		} +		break; +		case ' ': +		case '\15' : { +			clic = true; +			return; +		} +		break; +		case '\33' : { +			p_key = keypressed(); +			if (p_key) { +				input >> kbd >> in2; +				switch (in2) { +				case 'K' : +					cx = pred(integer, cx); +					break; +				case 'P' : +					cy = succ(integer, cy); +					break; +				case 'M' : +					cx = cx + 2; +					break; +				case 'H' : +					cy = pred(integer, cy); +					break; +				case RANGE_10(';', 'D') : { +					funct = true; +					key = in2; +					return; +				} +				break; +				case 'G' : { +					cx = cx - 1; +					cy = cy - 1; +				} +				break; +				case 'I' : { +					cx = cx + 1; +					cy = cy - 1; +				} +				break; +				case 'O' : { +					cx = cx - 1; +					cy = cy + 1; +				} +				break; +				case 'Q' : { +					cx = cx + 1; +					cy = cy + 1; +				} +				break; +				}    /* case */ +			} +		} +		break; +		case 'I' : { +			cx = res * 32; +			cy = 8; +		} +		break; +		case 'D' : { +			cx = 80 * res; +			cy = 8; +		} +		break; +		case 'A' : { +			cx = 126 * res; +			cy = 8; +		} +		break; +		case 'S' : { +			cx = 174 * res; +			cy = 8; +		} +		break; +		case 'P' : { +			cx = 222 * res; +			cy = 8; +		} +		break; +		case 'F' : { +			cx = res * 270; +			cy = 8; +		} +		break; +		case '\23' : { +			sonoff = ! sonoff; +			return; +		} +		break; +		case '\26' : { +			zuul = true; +			return; +		} +		break; +		case '\24' : {           /* ^T => mode tandy */ +			funct = true; +			key = '\11'; +		} +		break; +		case '\10' : {           /* ^H => mode Hercule */ +			funct = true; +			key = '\7'; +		} +		break; +		case '\1': +		case '\3': +		case '\5' : { +			funct = true; +			key = in1; +		} +		break; +		} +		pos_mouse(cx, cy); +		p_key = keypressed(); +	} +} diff --git a/engines/mortevielle/outtext.h b/engines/mortevielle/outtext.h index 5bd4fd2809..7c8f1c9f5c 100644 --- a/engines/mortevielle/outtext.h +++ b/engines/mortevielle/outtext.h @@ -1,205 +1,206 @@  str255 delig; -const array<0,31,byte> tabdr -      = {{  32, 101, 115,  97, 114, 105, 110, -          117, 116, 111, 108,  13, 100,  99, -          112, 109,  46, 118, 130,  39, 102, -           98,  44, 113, 104, 103,  33,  76, -           85, 106,  30,  31 }}; - - -const array<0,31,byte> tab30 -      = {{   69,  67,  74, 138, 133, 120,  77, 122, -          121,  68,  65,  63,  73,  80,  83,  82, -          156,  45,  58,  79,  49,  86,  78,  84, -           71,  81,  64,  66, 135,  34, 136,  91 }}; - - - -const array<0,31,byte> tab31 -      = {{  93,  47,  48,  53,  50,  70, 124,  75, -           72, 147, 140, 150, 151,  57,  56,  51, -          107, 139,  55,  89, 131,  37,  54,  88, -          119,   0,   0,   0,   0,   0,   0,   0 }}; - -void deline( integer num , phrase& l , integer& tl ); - -static void cinq_huit( char& c, integer& ind, byte& pt, boolean& the_end) -   { -           const array<0,31,char> rap -         = {{ ',', ':', '@', '!', '?', '-', '‡', -            ' ', '…', 'ƒ', '‚', 'Š', 'ˆ', '/', -            '‹', 'Œ', '¢', '\47', '“', '"', '—', -            '–', '0', '1', '2', '3', '4', '5', -            '6', '7', '8', '9'}}; -         integer oct,ocd; - -            /* 5-8 */ -     oct=t_mot[ind]; -     oct=(cardinal)(oct << (16-pt)) >> (16-pt); -     if (pt<6)  -        { -          ind=ind+1; -          oct=oct << (5-pt); -          pt=pt+11; -          oct=oct | ((cardinal)t_mot[ind] >> pt); -        } -      else -        { -          pt=pt-5; -          oct=(cardinal)oct >> pt; -        } - -     switch (oct) { -                  case 11 : { -                         c= '$'; -                         the_end= true; -                       } -                       break; -               case 30:case 31 : { -                         ocd=t_mot[ind]; -                         ocd=(cardinal)(ocd << (16-pt)) >> (16-pt); -                         if (pt<6)  -                            { -                              ind=ind+1; -                              ocd=ocd << (5-pt); -                              pt=pt+11; -                              ocd=ocd | ((cardinal)t_mot[ind] >> pt); -                            } -                          else -                            { -                              pt=pt-5; -                              ocd=(cardinal)ocd >> pt; -                            } -                          if (oct==30)  c=chr(tab30[ocd]); -                                    else c=chr(tab31[ocd]); -                          if (c=='\0')  -                             { -                               the_end=true; -                               c='#'; -                             } -                        } -                        break; -              default: c=chr(tabdr[oct]); -            } -   }              /* 5-8 */ - -void deline( integer num , phrase& l , integer& tl ) -      { -            integer i,j,ts; -            char let; -             byte ps, k; -            boolean the_end; - -              /* DETEX */ -        /*debug('  => DeLine');*/ -        delig=""; -        ts= t_rec[num].indis; -        ps= t_rec[num].point; -        i=ts; -        tl=1; -        j=1; -        k=ps; -        the_end=false; -        do { -          cinq_huit(let,i,k, the_end); -          l[j]=let; -          if (j<254)  delig=delig+let; -          j=j+1; -        } while  (!the_end); -        tl=j-1; -        if (tl<255)  delig=copy(delig,1,tl-1);       /* enleve le $ */ -      }       /* DETEX */ - - -void afftex( phrase ch, integer x,integer y,integer dx,integer dy, integer typ); - - -static integer l_motsuiv(integer p, phrase& ch, integer& tab) -  { -        integer c; - -    integer l_motsuiv_result; -    c=p; -    while (! (set::of(' ','$','@', eos).has(ch[p])))  p=p+1; -    l_motsuiv_result=tab*(p-c); -    return l_motsuiv_result; -  } - -void afftex( phrase ch, integer x,integer y,integer dx,integer dy, integer typ) -  { -        boolean the_end; -        char touch; -        integer xf,yf; -        integer xc,yc; -        integer tab, p; -        varying_string<255> s; -        integer i,j,nt; - - -/*    debug('  .. Afftex');*/ -    putxy(x,y); -    if (res==1)  tab=10; else tab=6; -    dx= dx * 6; -    dy= dy * 6; -    xc= x; -    yc= y; -    xf= x+dx; -    yf= y+dy; -    p= 1; -    the_end=(ch[p]=='$'); -    s=""; -    while (! the_end)  -     { -      switch (ch[p]) { -                  case '@' : { -                          writeg(s,typ); -                          s=""; -                          p=p+1; -                          xc=x; -                          yc=yc+6; -                          putxy(xc,yc); -                        } -                        break; -                  case ' ' : { -                          s=s+' '; -                          xc=xc+tab; -                          p=p+1; -                          if (l_motsuiv(p, ch, tab)+xc > xf)  -                             { -                               writeg(s,typ); -                               s=""; -                               xc=x; -                               yc=yc+6; -                               if (yc>yf)  -                                  { -                                    do {; } while (!keypressed()); -                                    i=y; -                                    do { -                                      j=x; -                                      do { -                                        putxy(j,i); -                                        writeg(" ",0); -                                        j=j+6; -                                      } while (!(j>xf)); -                                      i=i+6; -                                    } while (!(i>yf)); -                                    yc=y; -                                  } -                               putxy(xc,yc); -                             } -                        } -                        break; -                  case '$' : { -                          the_end= true; -                          writeg(s,typ); -                        } -                        break; -        default: -        { -          s=s+ch[p]; -          p=p+1; -          xc=xc+tab; -        } -      }     /* case */ -    } -  } +const array<0, 31, byte> tabdr += {{ +		32, 101, 115,  97, 114, 105, 110, +		117, 116, 111, 108,  13, 100,  99, +		112, 109,  46, 118, 130,  39, 102, +		98,  44, 113, 104, 103,  33,  76, +		85, 106,  30,  31 +	} +}; + + +const array<0, 31, byte> tab30 += {{ +		69,  67,  74, 138, 133, 120,  77, 122, +		121,  68,  65,  63,  73,  80,  83,  82, +		156,  45,  58,  79,  49,  86,  78,  84, +		71,  81,  64,  66, 135,  34, 136,  91 +	} +}; + + + +const array<0, 31, byte> tab31 += {{ +		93,  47,  48,  53,  50,  70, 124,  75, +		72, 147, 140, 150, 151,  57,  56,  51, +		107, 139,  55,  89, 131,  37,  54,  88, +		119,   0,   0,   0,   0,   0,   0,   0 +	} +}; + +void deline(integer num , phrase &l , integer &tl); + +static void cinq_huit(char &c, integer &ind, byte &pt, boolean &the_end) { +	const array<0, 31, char> rap +	= {{ ',', ':', '@', '!', '?', '-', '‡', +			' ', '…', 'ƒ', '‚', 'Š', 'ˆ', '/', +			'‹', 'Œ', '¢', '\47', '“', '"', '—', +			'–', '0', '1', '2', '3', '4', '5', +			'6', '7', '8', '9' +		} +	}; +	integer oct, ocd; + +	/* 5-8 */ +	oct = t_mot[ind]; +	oct = (cardinal)(oct << (16 - pt)) >> (16 - pt); +	if (pt < 6) { +		ind = ind + 1; +		oct = oct << (5 - pt); +		pt = pt + 11; +		oct = oct | ((cardinal)t_mot[ind] >> pt); +	} else { +		pt = pt - 5; +		oct = (cardinal)oct >> pt; +	} + +	switch (oct) { +	case 11 : { +		c = '$'; +		the_end = true; +	} +	break; +	case 30: +	case 31 : { +		ocd = t_mot[ind]; +		ocd = (cardinal)(ocd << (16 - pt)) >> (16 - pt); +		if (pt < 6) { +			ind = ind + 1; +			ocd = ocd << (5 - pt); +			pt = pt + 11; +			ocd = ocd | ((cardinal)t_mot[ind] >> pt); +		} else { +			pt = pt - 5; +			ocd = (cardinal)ocd >> pt; +		} +		if (oct == 30)  c = chr(tab30[ocd]); +		else c = chr(tab31[ocd]); +		if (c == '\0') { +			the_end = true; +			c = '#'; +		} +	} +	break; +	default: +		c = chr(tabdr[oct]); +	} +}              /* 5-8 */ + +void deline(integer num , phrase &l , integer &tl) { +	integer i, j, ts; +	char let; +	byte ps, k; +	boolean the_end; + +	/* DETEX */ +	/*debug('  => DeLine');*/ +	delig = ""; +	ts = t_rec[num].indis; +	ps = t_rec[num].point; +	i = ts; +	tl = 1; +	j = 1; +	k = ps; +	the_end = false; +	do { +		cinq_huit(let, i, k, the_end); +		l[j] = let; +		if (j < 254)  delig = delig + let; +		j = j + 1; +	} while (!the_end); +	tl = j - 1; +	if (tl < 255)  delig = copy(delig, 1, tl - 1); /* enleve le $ */ +}       /* DETEX */ + + +void afftex(phrase ch, integer x, integer y, integer dx, integer dy, integer typ); + + +static integer l_motsuiv(integer p, phrase &ch, integer &tab) { +	integer c; + +	integer l_motsuiv_result; +	c = p; +	while (!(set::of(' ', '$', '@', eos).has(ch[p])))  p = p + 1; +	l_motsuiv_result = tab * (p - c); +	return l_motsuiv_result; +} + +void afftex(phrase ch, integer x, integer y, integer dx, integer dy, integer typ) { +	boolean the_end; +	char touch; +	integer xf, yf; +	integer xc, yc; +	integer tab, p; +	varying_string<255> s; +	integer i, j, nt; + + +	/*    debug('  .. Afftex');*/ +	putxy(x, y); +	if (res == 1)  tab = 10; +	else tab = 6; +	dx = dx * 6; +	dy = dy * 6; +	xc = x; +	yc = y; +	xf = x + dx; +	yf = y + dy; +	p = 1; +	the_end = (ch[p] == '$'); +	s = ""; +	while (! the_end) { +		switch (ch[p]) { +		case '@' : { +			writeg(s, typ); +			s = ""; +			p = p + 1; +			xc = x; +			yc = yc + 6; +			putxy(xc, yc); +		} +		break; +		case ' ' : { +			s = s + ' '; +			xc = xc + tab; +			p = p + 1; +			if (l_motsuiv(p, ch, tab) + xc > xf) { +				writeg(s, typ); +				s = ""; +				xc = x; +				yc = yc + 6; +				if (yc > yf) { +					do { +						; +					} while (!keypressed()); +					i = y; +					do { +						j = x; +						do { +							putxy(j, i); +							writeg(" ", 0); +							j = j + 6; +						} while (!(j > xf)); +						i = i + 6; +					} while (!(i > yf)); +					yc = y; +				} +				putxy(xc, yc); +			} +		} +		break; +		case '$' : { +			the_end = true; +			writeg(s, typ); +		} +		break; +		default: { +			s = s + ch[p]; +			p = p + 1; +			xc = xc + tab; +		} +		}     /* case */ +	} +} diff --git a/engines/mortevielle/ovd1.h b/engines/mortevielle/ovd1.h index b2f5f7962c..d40f8d39bc 100644 --- a/engines/mortevielle/ovd1.h +++ b/engines/mortevielle/ovd1.h @@ -1,32 +1,29 @@ -void dem2() -{ -      untyped_file f; -      integer k; - -  /* -- demande de disk 2 -- */ -  while (ioresult!=0); -  assign(f,"mort.001"); -  /*$i-*/ -  reset(f); -  while (ioresult!=0)  -   { -     show_mouse(); -     k= do_alert(al_mess2,1); -     hide_mouse(); -     reset(f); -   } -  close(f); +void dem2() { +	untyped_file f; +	integer k; + +	/* -- demande de disk 2 -- */ +	while (ioresult != 0); +	assign(f, "mort.001"); +	/*$i-*/ +	reset(f); +	while (ioresult != 0) { +		show_mouse(); +		k = do_alert(al_mess2, 1); +		hide_mouse(); +		reset(f); +	} +	close(f);  } -void ani50() -  { -    crep= animof(1,1); -    pictout(adani,crep,63,12); -    crep= animof(2,1); -    pictout(adani,crep,63,12); -    f2_all= (res==1); -    repon(2, c_paroles+143); -  } +void ani50() { +	crep = animof(1, 1); +	pictout(adani, crep, 63, 12); +	crep = animof(2, 1); +	pictout(adani, crep, 63, 12); +	f2_all = (res == 1); +	repon(2, c_paroles + 143); +}  /*overlay procedure apzuul;    begin @@ -37,311 +34,304 @@ void ani50()       end;    end;*/ -/* overlay */ void aff50(boolean c) -  { -        integer k; - -    caff= 50; -    maff=0; -    taffich(); -    dessine(ades,63,12); -    if (c)  ani50(); -         else repon(2, c_paroles+142); -    f3f8(); -  } - -/* overlay */ void init_menu() -  { -        integer i, j, tai; -        phrase st; -        untyped_file f; - -    assign(f,"menufr.mor"); -    /*$i-*/ -    reset(f,144); -    blockread(f,lettres,1); -    close(f); -    /* ----  Demande de changement de disquette  ---- */ -    dem2(); - - -    for( i= 1; i <= 8; i ++) -       inv[i]= "*                     "; -    inv[7]= "< -*-*-*-*-*-*-*-*-*- "; -    for( i= 1; i <= 7; i ++) -       dep[i]= "*                       "; -    i= 1; -    do { -      deline(i+c_action,st,tai); -      act[i]= delig + "          "; -      if (i<9)  -         { -           if (i<6)  -              { -                deline(i+c_saction,st,tai); -                self_[i]= delig + "       "; -              } -           deline(i+c_dis,st,tai); -           dis[i]= delig+ ' '; -         } -      i= succ(integer,i); -    } while (!(i== 22)); -    for( i= 1; i <= 8; i ++) -      { -       disc[i]=0x500+i; -       if (i<8)  depl[i]=0x200+i; -       invt[i]=0x100+i; -       if (i>6)  menu_disable(invt[i]); -      } -    msg3=no_choice; -    msg4=no_choice; -    msg[3]=no_choice; -    msg[4]=no_choice; -    clic=false; -  } - - -/* overlay */ void charpal() -{ -       file<tabdb> f; -       file<tfxx> ft; -       integer i,j,k; -       file<byte> fb; -       byte b; - -  assign(ft,"fxx.mor"); -  /*$i-*/ -  reset(ft); -  if (ioresult!=0)  -           { -             caff=do_alert(err_mess,1); -             exit(0); -           } -  ft >> l; -  close(ft); -  assign(f,"plxx.mor"); -  reset(f); -  for( i= 0; i <= 90; i ++) f >> tabpal[i]; -  close(f); -  assign(fb,  "cxx.mor"); -  reset(fb); -  for( j=0; j <= 90; j ++) -    { -      fb >> palcga[j].p; -      for( i=0; i <= 15; i ++) -        { -            nhom& with = palcga[j].a[i];  - -            fb >> b; -            with.n=(cardinal)b >> 4; -            with.hom[0]= ((cardinal)b >> 2) & 3; -            with.hom[1]= b & 3; -        } -    } -  palcga[10].a[9]= palcga[10].a[5]; -  for( j=0; j <= 14; j ++) -    { -      fb >> tpt[j].tax; -      fb >> tpt[j].tay; -      for( i=1; i <= 20; i ++) -        for( k=1; k <= 20; k ++) -          fb >> tpt[j].des[i][k]; -    } -  close(fb); +/* overlay */ void aff50(boolean c) { +	integer k; + +	caff = 50; +	maff = 0; +	taffich(); +	dessine(ades, 63, 12); +	if (c)  ani50(); +	else repon(2, c_paroles + 142); +	f3f8();  } -/* overlay */ void chartex() -{ -      integer i; -      untyped_file fibyte; -      phrase s; - -/* debug('o3 chartex'); */ -  i=0; -  assign(fibyte,"TXX.INP"); -  /*$i-*/ -  reset(fibyte); -  blockread(fibyte,t_mot,125); -  close(fibyte); -  assign(sauv_t,"TXX.NTP"); -  reset(sauv_t); -  do { -    sauv_t >> t_rec[i]; -    i=i+1; -  } while (!(eof(sauv_t))); -  close(sauv_t); -  deline(578,s,i); -  al_mess= delig; -  deline(579,s,i); -  err_mess= delig; -  deline(580,s,i); -  ind_mess= delig; -  deline(581,s,i); -  al_mess2= delig; +/* overlay */ void init_menu() { +	integer i, j, tai; +	phrase st; +	untyped_file f; + +	assign(f, "menufr.mor"); +	/*$i-*/ +	reset(f, 144); +	blockread(f, lettres, 1); +	close(f); +	/* ----  Demande de changement de disquette  ---- */ +	dem2(); + + +	for (i = 1; i <= 8; i ++) +		inv[i] = "*                     "; +	inv[7] = "< -*-*-*-*-*-*-*-*-*- "; +	for (i = 1; i <= 7; i ++) +		dep[i] = "*                       "; +	i = 1; +	do { +		deline(i + c_action, st, tai); +		act[i] = delig + "          "; +		if (i < 9) { +			if (i < 6) { +				deline(i + c_saction, st, tai); +				self_[i] = delig + "       "; +			} +			deline(i + c_dis, st, tai); +			dis[i] = delig + ' '; +		} +		i = succ(integer, i); +	} while (!(i == 22)); +	for (i = 1; i <= 8; i ++) { +		disc[i] = 0x500 + i; +		if (i < 8)  depl[i] = 0x200 + i; +		invt[i] = 0x100 + i; +		if (i > 6)  menu_disable(invt[i]); +	} +	msg3 = no_choice; +	msg4 = no_choice; +	msg[3] = no_choice; +	msg[4] = no_choice; +	clic = false; +} + + +/* overlay */ void charpal() { +	file<tabdb> f; +	file<tfxx> ft; +	integer i, j, k; +	file<byte> fb; +	byte b; + +	assign(ft, "fxx.mor"); +	/*$i-*/ +	reset(ft); +	if (ioresult != 0) { +		caff = do_alert(err_mess, 1); +		exit(0); +	} +	ft >> l; +	close(ft); +	assign(f, "plxx.mor"); +	reset(f); +	for (i = 0; i <= 90; i ++) f >> tabpal[i]; +	close(f); +	assign(fb,  "cxx.mor"); +	reset(fb); +	for (j = 0; j <= 90; j ++) { +		fb >> palcga[j].p; +		for (i = 0; i <= 15; i ++) { +			nhom &with = palcga[j].a[i]; + +			fb >> b; +			with.n = (cardinal)b >> 4; +			with.hom[0] = ((cardinal)b >> 2) & 3; +			with.hom[1] = b & 3; +		} +	} +	palcga[10].a[9] = palcga[10].a[5]; +	for (j = 0; j <= 14; j ++) { +		fb >> tpt[j].tax; +		fb >> tpt[j].tay; +		for (i = 1; i <= 20; i ++) +			for (k = 1; k <= 20; k ++) +				fb >> tpt[j].des[i][k]; +	} +	close(fb); +} + +/* overlay */ void chartex() { +	integer i; +	untyped_file fibyte; +	phrase s; + +	/* debug('o3 chartex'); */ +	i = 0; +	assign(fibyte, "TXX.INP"); +	/*$i-*/ +	reset(fibyte); +	blockread(fibyte, t_mot, 125); +	close(fibyte); +	assign(sauv_t, "TXX.NTP"); +	reset(sauv_t); +	do { +		sauv_t >> t_rec[i]; +		i = i + 1; +	} while (!(eof(sauv_t))); +	close(sauv_t); +	deline(578, s, i); +	al_mess = delig; +	deline(579, s, i); +	err_mess = delig; +	deline(580, s, i); +	ind_mess = delig; +	deline(581, s, i); +	al_mess2 = delig;  }  /* overlay */ void dialpre()  { - integer cy, tay; - phrase st; - real ix; - char ch; - - - /* debug('o3 dialpre'); */ - cy=0; - clrscr; - textcolor(9); - do { -   cy= cy+1; -   deline( cy+c_dialpre,st,tay); -   gotoxy(40-tay / 2,wherey+1); -   output << delig; - } while (!(cy==20)); - ix=0; - do { -   ix= ix+1; - } while (!(keypressed() | (ix==5e5))); - crep= 998; - textcolor(1); - gotoxy(1,21); clreol; - gotoxy(1,23); - output << "CARTE GRAPHIQUE      CGA    EGA    HERCULE/AT&T400    TANDY    AMSTRAD1512"; - gotoxy(12,24); - output << "Ctrl       C      E            H             T           A"; - do { -   input >> kbd >> ch; - } while (!(set::of('\1','\3','\5','\24','\10', eos).has(ch))); - switch (ch) { -      case '\1':case '\3':case '\5' : gd= (cardinal)ord(ch) >> 1; break; -            case '\10' : gd= her; break; -           case '\24' : gd= tan; break; - } - gotoxy(1,24); - clreol; - gotoxy(1,23); - clreol; - gotoxy(26,23); - output << "Jeu au Clavier / … la Souris"; - textcolor(4); - gotoxy(33,23); output << 'C'; - gotoxy(48,23); output << 'S'; - do { -   input >> kbd >> ch; - } while (!(set::of('C','S', eos).has(upcase(ch)))); - int_m= (upcase(ch)=='S'); +	integer cy, tay; +	phrase st; +	real ix; +	char ch; + + +	/* debug('o3 dialpre'); */ +	cy = 0; +	clrscr; +	textcolor(9); +	do { +		cy = cy + 1; +		deline(cy + c_dialpre, st, tay); +		gotoxy(40 - tay / 2, wherey + 1); +		output << delig; +	} while (!(cy == 20)); +	ix = 0; +	do { +		ix = ix + 1; +	} while (!(keypressed() | (ix == 5e5))); +	crep = 998; +	textcolor(1); +	gotoxy(1, 21); +	clreol; +	gotoxy(1, 23); +	output << "CARTE GRAPHIQUE      CGA    EGA    HERCULE/AT&T400    TANDY    AMSTRAD1512"; +	gotoxy(12, 24); +	output << "Ctrl       C      E            H             T           A"; +	do { +		input >> kbd >> ch; +	} while (!(set::of('\1', '\3', '\5', '\24', '\10', eos).has(ch))); +	switch (ch) { +	case '\1': +	case '\3': +	case '\5' : +		gd = (cardinal)ord(ch) >> 1; +		break; +	case '\10' : +		gd = her; +		break; +	case '\24' : +		gd = tan; +		break; +	} +	gotoxy(1, 24); +	clreol; +	gotoxy(1, 23); +	clreol; +	gotoxy(26, 23); +	output << "Jeu au Clavier / … la Souris"; +	textcolor(4); +	gotoxy(33, 23); +	output << 'C'; +	gotoxy(48, 23); +	output << 'S'; +	do { +		input >> kbd >> ch; +	} while (!(set::of('C', 'S', eos).has(upcase(ch)))); +	int_m = (upcase(ch) == 'S');  } -/* overlay */ void init_lieu() -{ -   file<tab_mlieu> f_lieu; - -/* debug('o3 init_lieu'); */ -  assign(f_lieu,"MXX.mor"); -  /*$i-*/ -  reset(f_lieu); -  f_lieu >> v_lieu; -  close(f_lieu); +/* overlay */ void init_lieu() { +	file<tab_mlieu> f_lieu; + +	/* debug('o3 init_lieu'); */ +	assign(f_lieu, "MXX.mor"); +	/*$i-*/ +	reset(f_lieu); +	f_lieu >> v_lieu; +	close(f_lieu);  } -/* overlay */ void music() -{ -       untyped_file fic; -         integer k; -       boolean fin; -        char ch; -        real x,y; - - -  /* debug('o3 music'); */ -  if (sonoff)  return; -  rech_cfiec= true; -  assign(fic,"mort.img"); -  /*$i-*/ -  reset(fic); -  blockread(fic,mem[0x3800+0],500); -  blockread(fic,mem[0x47a0+0],123); -  close(fic); -  demus(0x3800,0x5000,623); -  addfix= (real)((tempo_mus-addv[1]))/256; -  cctable(tbi); - -  fin=false; -  k=0; -  do { -    fin= keypressed(); -    musyc( tbi, 9958 , tempo_mus); -    k= k+1; -    fin= fin | keypressed() | (k>=5); -  } while (!fin); -  while (keypressed())  input >> kbd >> ch; +/* overlay */ void music() { +	untyped_file fic; +	integer k; +	boolean fin; +	char ch; +	real x, y; + + +	/* debug('o3 music'); */ +	if (sonoff)  return; +	rech_cfiec = true; +	assign(fic, "mort.img"); +	/*$i-*/ +	reset(fic); +	blockread(fic, mem[0x3800 + 0], 500); +	blockread(fic, mem[0x47a0 + 0], 123); +	close(fic); +	demus(0x3800, 0x5000, 623); +	addfix = (real)((tempo_mus - addv[1])) / 256; +	cctable(tbi); + +	fin = false; +	k = 0; +	do { +		fin = keypressed(); +		musyc(tbi, 9958 , tempo_mus); +		k = k + 1; +		fin = fin | keypressed() | (k >= 5); +	} while (!fin); +	while (keypressed())  input >> kbd >> ch;  } -/* overlay */ void charge_bruit5() -   { -         untyped_file f; - -     assign(f,"bruit5"); -     /*$i-*/ -     reset(f); -     if (ioresult!=0)  -     { -       caff=do_alert(err_mess,1); -       exit(0); -     } -     blockread(f,mem[adbruit5+0],149); -     /*blockread(f,mem[$5CB0:0],100); -     blockread(f,mem[$3D1F:0],49);*/ -     close(f); -   } - -/* overlay */ void charge_cfiec() -      { -            untyped_file f; - -        assign(f,"cfiec.mor"); -       /*$i-*/ -        reset(f); -        blockread(f,mem[adcfiec+0],511); -        blockread(f,mem[adcfiec+4088+0],311); -        close(f); -        rech_cfiec= false; -      } - - -/* overlay */ void charge_cfiph() -      { -            untyped_file f; - -        assign(f,"cfiph.mor"); -        /*$i-*/ -        reset(f,256); -        blockread(f,t_cph,50); -        close(f); -      } - - -/* overlay */ void suite() -{ -      varying_string<25> cpr; - -  hirs(); -  repon(7,2035); -  caff= 51; -  taffich(); -  teskbd(); -  if (newgd!=gd)  gd=newgd; -  hirs(); -  dessine(ades,0,0); -  gotoxy(20*pred(integer,res)+8,24); -  textcolor(7); -  cpr="COPYRIGHT 1989 : LANKHOR"; -  if (set::of(ega,ams,cga, eos).has(gd))  output << cpr; -             else { -                    putxy(104+72*res,190); -                    writeg(cpr,0); -                  } +/* overlay */ void charge_bruit5() { +	untyped_file f; + +	assign(f, "bruit5"); +	/*$i-*/ +	reset(f); +	if (ioresult != 0) { +		caff = do_alert(err_mess, 1); +		exit(0); +	} +	blockread(f, mem[adbruit5 + 0], 149); +	/*blockread(f,mem[$5CB0:0],100); +	blockread(f,mem[$3D1F:0],49);*/ +	close(f); +} + +/* overlay */ void charge_cfiec() { +	untyped_file f; + +	assign(f, "cfiec.mor"); +	/*$i-*/ +	reset(f); +	blockread(f, mem[adcfiec + 0], 511); +	blockread(f, mem[adcfiec + 4088 + 0], 311); +	close(f); +	rech_cfiec = false; +} + + +/* overlay */ void charge_cfiph() { +	untyped_file f; + +	assign(f, "cfiph.mor"); +	/*$i-*/ +	reset(f, 256); +	blockread(f, t_cph, 50); +	close(f); +} + + +/* overlay */ void suite() { +	varying_string<25> cpr; + +	hirs(); +	repon(7, 2035); +	caff = 51; +	taffich(); +	teskbd(); +	if (newgd != gd)  gd = newgd; +	hirs(); +	dessine(ades, 0, 0); +	gotoxy(20 * pred(integer, res) + 8, 24); +	textcolor(7); +	cpr = "COPYRIGHT 1989 : LANKHOR"; +	if (set::of(ega, ams, cga, eos).has(gd))  output << cpr; +	else { +		putxy(104 + 72 * res, 190); +		writeg(cpr, 0); +	}  } diff --git a/engines/mortevielle/parole.h b/engines/mortevielle/parole.h index 0630c9b2b3..3b777c3770 100644 --- a/engines/mortevielle/parole.h +++ b/engines/mortevielle/parole.h @@ -1,396 +1,388 @@ -   void spfrac(integer wor) -     { -       c3.rep= (cardinal)wor >> 12; -       if ((typlec==0) && (c3.code!=9))  -          if (((c3.code>4) && (c3.val!=20) && ! (set::of(3,6,9, eos).has(c3.rep))) || -             ((c3.code<5) && ! (set::of(19,22, eos).has(c3.val)) && ! (set::of(4,9, eos).has(c3.rep))))  -             c3.rep= c3.rep + 1; -       c3.freq= ((cardinal)wor >> 6) & 7; -       c3.acc= ((cardinal)wor >> 9) & 7; -     } +void spfrac(integer wor) { +	c3.rep = (cardinal)wor >> 12; +	if ((typlec == 0) && (c3.code != 9)) +		if (((c3.code > 4) && (c3.val != 20) && !(set::of(3, 6, 9, eos).has(c3.rep))) || +		        ((c3.code < 5) && !(set::of(19, 22, eos).has(c3.val)) && !(set::of(4, 9, eos).has(c3.rep)))) +			c3.rep = c3.rep + 1; +	c3.freq = ((cardinal)wor >> 6) & 7; +	c3.acc = ((cardinal)wor >> 9) & 7; +} -   void charg_car() -     { -           integer wor, int_; +void charg_car() { +	integer wor, int_; -       wor= swap(memw[adword+ptr_word]); -       int_= wor & 0x3f; -       switch (int_) { -                  case 60 : { -                         c3.val= 32;   /*  " "  */ -                         c3.code= 9; -                       } -                       break; -                  case 61 : { -                         c3.val= 46;   /*  "."  */ -                         c3.code= 9; -                       } -                       break; -                  case 62 : { -                         c3.val= 35;   /*  "#"  */ -                         c3.code= 9; -                       } -                       break; -              case RANGE_26(22,47) : { -                         int_= int_-22; -                         c3.val= int_; -                         c3.code= typcon[int_]; -                       } -                       break; -              case RANGE_9(48,56) : { -                         c3.val= int_-22; -                         c3.code= 4; -                       } -                       break; -              case RANGE_8(14,21) : { -                         c3.val= int_; -                         c3.code= 6; -                       } -                       break; -               case RANGE_14(0,13) : { -                         c3.val= int_; -                         c3.code= 5; -                       } -                       break; -       } -       spfrac(wor); -       ptr_word= ptr_word+2; -     } +	wor = swap(memw[adword + ptr_word]); +	int_ = wor & 0x3f; +	switch (int_) { +	case 60 : { +		c3.val = 32;  /*  " "  */ +		c3.code = 9; +	} +	break; +	case 61 : { +		c3.val = 46;  /*  "."  */ +		c3.code = 9; +	} +	break; +	case 62 : { +		c3.val = 35;  /*  "#"  */ +		c3.code = 9; +	} +	break; +	case RANGE_26(22, 47) : { +		int_ = int_ - 22; +		c3.val = int_; +		c3.code = typcon[int_]; +	} +	break; +	case RANGE_9(48, 56) : { +		c3.val = int_ - 22; +		c3.code = 4; +	} +	break; +	case RANGE_8(14, 21) : { +		c3.val = int_; +		c3.code = 6; +	} +	break; +	case RANGE_14(0, 13) : { +		c3.val = int_; +		c3.code = 5; +	} +	break; +	} +	spfrac(wor); +	ptr_word = ptr_word + 2; +} -   void entroct( byte o) -     { -       mem[adtroct+ptr_oct]= o; -       ptr_oct= ptr_oct+1; -     } +void entroct(byte o) { +	mem[adtroct + ptr_oct] = o; +	ptr_oct = ptr_oct + 1; +} -   void veracf(byte b) -     {; -     } +void veracf(byte b) { +	; +} -/* overlay */ void cctable (tablint& t) -   { -      integer k; -      array<0,256,real> tb; +/* overlay */ void cctable(tablint &t) { +	integer k; +	array<0, 256, real> tb; -     tb[0]=0; -     for( k=0; k <= 255; k ++) -     { -       tb[k+1]= addfix + tb[k]; -       t[255-k]=trunc(tb[k])+1; -     } -   } +	tb[0] = 0; +	for (k = 0; k <= 255; k ++) { +		tb[k + 1] = addfix + tb[k]; +		t[255 - k] = trunc(tb[k]) + 1; +	} +} -/* overlay */ void regenbruit() -      { -            integer i,j; +/* overlay */ void regenbruit() { +	integer i, j; -        i= offsetb3+8590; -        j= 0; -        do { -          t_cph[j]=memw[adbruit3+i]; -          i= i+2; -          j= j+1; -        } while (!(i>= offsetb3+8790)); -      } +	i = offsetb3 + 8590; +	j = 0; +	do { +		t_cph[j] = memw[adbruit3 + i]; +		i = i + 2; +		j = j + 1; +	} while (!(i >= offsetb3 + 8790)); +} -/* overlay */   void charge_son() -      { -            untyped_file f; +/* overlay */   void charge_son() { +	untyped_file f; -        assign(f,"sonmus.mor"); -        reset(f); -        blockread(f,mem[0x7414+0],273); -        /*blockread(f,mem[adson+0],300); -        blockread(f,mem[adson+2400+0],245);*/ -        demus(0x7414,adson,273); -        close(f); -      } +	assign(f, "sonmus.mor"); +	reset(f); +	blockread(f, mem[0x7414 + 0], 273); +	/*blockread(f,mem[adson+0],300); +	blockread(f,mem[adson+2400+0],245);*/ +	demus(0x7414, adson, 273); +	close(f); +} -/* overlay */   void charge_phbruit() -      { -            untyped_file f; +/* overlay */   void charge_phbruit() { +	untyped_file f; -        assign(f,"phbrui.mor"); -        reset(f); -        blockread(f,t_cph,3); -        close(f); -      } +	assign(f, "phbrui.mor"); +	reset(f); +	blockread(f, t_cph, 3); +	close(f); +} -/* overlay */   void charge_bruit() -      { -            untyped_file f; -            integer j,i; +/* overlay */   void charge_bruit() { +	untyped_file f; +	integer j, i; -        assign(f,"bruits"); -        reset(f); -        blockread(f,mem[adbruit+0],250); -        for( i=0; i <= 19013; i ++) mem[adbruit+32000+i]= mem[adbruit5+i]; -        blockread(f,mem[adbruit1+offsetb1],149); -        close(f); -      } +	assign(f, "bruits"); +	reset(f); +	blockread(f, mem[adbruit + 0], 250); +	for (i = 0; i <= 19013; i ++) mem[adbruit + 32000 + i] = mem[adbruit5 + i]; +	blockread(f, mem[adbruit1 + offsetb1], 149); +	close(f); +} -/* overlay */   void trait_car() -     { -              byte d3; -           integer d2, i; +/* overlay */   void trait_car() { +	byte d3; +	integer d2, i; -       switch (c2.code) { -                    case 9 : if (c2.val!=ord('#'))  for( i=0; i <= c2.rep; i ++) entroct(c2.val); break; +	switch (c2.code) { +	case 9 : +		if (c2.val != ord('#'))  for (i = 0; i <= c2.rep; i ++) entroct(c2.val); +		break; -                  case 5:case 6 : { -                          if (c2.code==6)  d3= tabdph[(c2.val - 14) << 1]; -                                       else d3= null; -                          if (c1.code>=5)  -                             { -                               veracf(c2.acc); -                               if (c1.code==9)  -                                  { -                                    entroct(4); -                                    if (d3==null)  entroct(c2.val); -                                               else entroct(d3); -                                    entroct(22); -                                  } -                             } -                          switch (c2.rep) { -                                        case 0 : { -                                              entroct(0); -                                              entroct(c2.val); -                                              if (d3==null)  if (c3.code==9)  entroct(2); -                                                                           else entroct(4); -                                                         else if (c3.code==9)  entroct(0); -                                                                           else entroct(1); -                                            } -                                            break; -                                    case 4:case 5:case 6 : { -                                              if (c2.rep!=4)  -                                                 { -                                                   i= c2.rep-5; -                                                   do { -                                                     i= i-1; -                                                     entroct(0); -                                                     if (d3==null)  entroct(c2.val); -                                                                else entroct(d3); -                                                     entroct(3); -                                                   } while (!(i<0)); -                                                 } -                                              if (d3==null)  -                                                 { -                                                   entroct(4); -                                                   entroct(c2.val); -                                                   entroct(0); -                                                 } -                                                else -                                                 { -                                                   entroct(0); -                                                   entroct(c2.val); -                                                   entroct(3); -                                                 } -                                            } -                                            break; -                                    case 7:case 8:case 9 : { -                                              if (c2.rep!=7)  -                                                 { -                                                   i= c2.rep-8; -                                                   do { -                                                     i= i-1; -                                                     entroct(0); -                                                     if (d3==null)  entroct(c2.val); -                                                                else entroct(d3); -                                                     entroct(3); -                                                   } while (!(i<0)); -                                                 } -                                              if (d3==null)  -                                                 { -                                                   entroct(0); -                                                   entroct(c2.val); -                                                   entroct(2); -                                                 } -                                                else -                                                 { -                                                   entroct(0); -                                                   entroct(c2.val); -                                                   entroct(0); -                                                 } -                                            } -                                            break; -                                    case 1:case 2:case 3 : { -                                              if (c2.rep!=1)  -                                                 { -                                                   i= c2.rep-2; -                                                   do { -                                                     i= i-1; -                                                     entroct(0); -                                                     if (d3==null)  entroct(c2.val); -                                                                else entroct(d3); -                                                     entroct(3); -                                                   } while (!(i<0)); -                                                 } -                                              entroct(0); -                                              entroct(c2.val); -                                              if (c3.code==9)  entroct(0); -                                                           else entroct(1); -                                            } -                                            break; -                          }     /*  case  c2.rep  */ -                        } -                        break; +	case 5: +	case 6 : { +		if (c2.code == 6)  d3 = tabdph[(c2.val - 14) << 1]; +		else d3 = null; +		if (c1.code >= 5) { +			veracf(c2.acc); +			if (c1.code == 9) { +				entroct(4); +				if (d3 == null)  entroct(c2.val); +				else entroct(d3); +				entroct(22); +			} +		} +		switch (c2.rep) { +		case 0 : { +			entroct(0); +			entroct(c2.val); +			if (d3 == null)  if (c3.code == 9)  entroct(2); +				else entroct(4); +			else if (c3.code == 9)  entroct(0); +			else entroct(1); +		} +		break; +		case 4: +		case 5: +		case 6 : { +			if (c2.rep != 4) { +				i = c2.rep - 5; +				do { +					i = i - 1; +					entroct(0); +					if (d3 == null)  entroct(c2.val); +					else entroct(d3); +					entroct(3); +				} while (!(i < 0)); +			} +			if (d3 == null) { +				entroct(4); +				entroct(c2.val); +				entroct(0); +			} else { +				entroct(0); +				entroct(c2.val); +				entroct(3); +			} +		} +		break; +		case 7: +		case 8: +		case 9 : { +			if (c2.rep != 7) { +				i = c2.rep - 8; +				do { +					i = i - 1; +					entroct(0); +					if (d3 == null)  entroct(c2.val); +					else entroct(d3); +					entroct(3); +				} while (!(i < 0)); +			} +			if (d3 == null) { +				entroct(0); +				entroct(c2.val); +				entroct(2); +			} else { +				entroct(0); +				entroct(c2.val); +				entroct(0); +			} +		} +		break; +		case 1: +		case 2: +		case 3 : { +			if (c2.rep != 1) { +				i = c2.rep - 2; +				do { +					i = i - 1; +					entroct(0); +					if (d3 == null)  entroct(c2.val); +					else entroct(d3); +					entroct(3); +				} while (!(i < 0)); +			} +			entroct(0); +			entroct(c2.val); +			if (c3.code == 9)  entroct(0); +			else entroct(1); +		} +		break; +		}     /*  case  c2.rep  */ +	} +	break; -                  case 2:case 3 : { -                          d3= c2.code+5;   /*  7 ou 8  => voyelle correspondante  */ -                          if (c1.code>4)  -                             { -                               veracf(c2.acc); -                               if (c1.code==9)  -                                  { -                                    entroct(4); -                                    entroct(d3); -                                    entroct(22); -                                  } -                             } -                          i=c2.rep; -                          if (i!=0)  -                             { -                               do { -                                 i=i-1; -                                 entroct(0); -                                 entroct(d3); -                                 entroct(3); -                               } while (!(i<=0)); -                             } -                          veracf(c3.acc); -                          if (c3.code==6)  -                             { -                               entroct(4); -                               entroct(tabdph[(c3.val-14) << 1]); -                               entroct(c2.val); -                             } -                            else -                             { -                               entroct(4); -                               if (c3.val==4)  entroct(3); -                                           else entroct(c3.val); -                               entroct(c2.val); -                             } -                        } -                        break; -                  case 0:case 1 : { -                          veracf(c2.acc); -                          switch (c3.code) { -                                       case 2 : d2= 7; break; -                                       case 3 : d2= 8; break; -                                       case 6 : d2= tabdph[(c3.val-14) << 1]; break; -                                       case 5 : d2= c3.val; break; -                                      default: d2=10; -                          }       /*  case  c3.code  */ -                          d2= d2 *26 + c2.val; -                          if (tnocon[d2]==0)  d3=2; -                                          else d3=6; -                          if (c2.rep>=5)  -                             { -                               c2.rep=c2.rep-5; -                               d3= 8-d3;          /*  echange 2 et 6  */ -                             } -                          if (c2.code==0)  -                             { -                               i=c2.rep; -                               if (i!=0)  -                                  { -                                    do { -                                      i=i-1; -                                      entroct(d3); -                                      entroct(c2.val); -                                      entroct(3); -                                    } while (!(i<=0)); -                                  } -                               entroct(d3); -                               entroct(c2.val); -                               entroct(4); -                             } -                            else -                             { -                               entroct(d3); -                               entroct(c2.val); -                               entroct(3); -                               i=c2.rep; -                               if (i!=0)  -                                  { -                                    do { -                                      i=i-1; -                                      entroct(d3); -                                      entroct(c2.val); -                                      entroct(4); -                                    } while (!(i<=0)); -                                  } -                             } -                          if (c3.code==9)  -                             { -                               entroct(d3); -                               entroct(c2.val); -                               entroct(5); -                             } -                            else -                             if (! (set::of(range(0,1),4, eos).has(c3.code)))  -                                { -                                  veracf(c3.acc); -                                  switch (c3.code) { -                                                 case 3 : d2= 8; break; -                                                 case 6 : d2= tabdph[(c3.val-14) << 1]; break; -                                                 case 5 : d2= c3.val; break; -                                                default: d2= 7; -                                  }     /*  case c3.code  */ -                                  if (d2==4)  d2=3; -                                  if (intcon[c2.val]!=0)  c2.val= c2.val+1; -                                  if ((c2.val==17) || (c2.val==18))  c2.val=16; -                                  entroct(4); -                                  entroct(d2); -                                  entroct(c2.val); -                                } -                        } -                        break; -                    case 4 : { -                          veracf(c2.acc); -                          i=c2.rep; -                          if (i!=0)  -                             { -                               do { -                                 i=i-1; -                                 entroct(2); -                                 entroct(c2.val); -                                 entroct(3); -                               } while (!(i<=0)); -                             } -                          entroct(2); -                          entroct(c2.val); -                          entroct(4); -                          if (c3.code==9)  -                             { -                               entroct(2); -                               entroct(c2.val); -                               entroct(5); -                             } -                            else -                             if (! (set::of(range(0,1),4, eos).has(c3.code)))  -                                { -                                  veracf(c3.acc); -                                  switch (c3.code) { -                                                 case 3 : d2= 8; break; -                                                 case 6 : d2= tabdph[(c3.val-14) << 1]; break; -                                                 case 5 : d2= c3.val; break; -                                                default: d2= 7; -                                  }     /*  case c3.code  */ -                                  if (d2==4)  d2=3; -                                  if (intcon[c2.val]!=0)  c2.val= c2.val+1; -                                  entroct(4); -                                  entroct(d2); -                                  entroct(tabdbc[((c2.val-26) << 1)+1]); -                                } -                        } -                        break; -       }     /* case c2.code  */ -     } +	case 2: +	case 3 : { +		d3 = c2.code + 5; /*  7 ou 8  => voyelle correspondante  */ +		if (c1.code > 4) { +			veracf(c2.acc); +			if (c1.code == 9) { +				entroct(4); +				entroct(d3); +				entroct(22); +			} +		} +		i = c2.rep; +		if (i != 0) { +			do { +				i = i - 1; +				entroct(0); +				entroct(d3); +				entroct(3); +			} while (!(i <= 0)); +		} +		veracf(c3.acc); +		if (c3.code == 6) { +			entroct(4); +			entroct(tabdph[(c3.val - 14) << 1]); +			entroct(c2.val); +		} else { +			entroct(4); +			if (c3.val == 4)  entroct(3); +			else entroct(c3.val); +			entroct(c2.val); +		} +	} +	break; +	case 0: +	case 1 : { +		veracf(c2.acc); +		switch (c3.code) { +		case 2 : +			d2 = 7; +			break; +		case 3 : +			d2 = 8; +			break; +		case 6 : +			d2 = tabdph[(c3.val - 14) << 1]; +			break; +		case 5 : +			d2 = c3.val; +			break; +		default: +			d2 = 10; +		}       /*  case  c3.code  */ +		d2 = d2 * 26 + c2.val; +		if (tnocon[d2] == 0)  d3 = 2; +		else d3 = 6; +		if (c2.rep >= 5) { +			c2.rep = c2.rep - 5; +			d3 = 8 - d3;       /*  echange 2 et 6  */ +		} +		if (c2.code == 0) { +			i = c2.rep; +			if (i != 0) { +				do { +					i = i - 1; +					entroct(d3); +					entroct(c2.val); +					entroct(3); +				} while (!(i <= 0)); +			} +			entroct(d3); +			entroct(c2.val); +			entroct(4); +		} else { +			entroct(d3); +			entroct(c2.val); +			entroct(3); +			i = c2.rep; +			if (i != 0) { +				do { +					i = i - 1; +					entroct(d3); +					entroct(c2.val); +					entroct(4); +				} while (!(i <= 0)); +			} +		} +		if (c3.code == 9) { +			entroct(d3); +			entroct(c2.val); +			entroct(5); +		} else if (!(set::of(range(0, 1), 4, eos).has(c3.code))) { +			veracf(c3.acc); +			switch (c3.code) { +			case 3 : +				d2 = 8; +				break; +			case 6 : +				d2 = tabdph[(c3.val - 14) << 1]; +				break; +			case 5 : +				d2 = c3.val; +				break; +			default: +				d2 = 7; +			}     /*  case c3.code  */ +			if (d2 == 4)  d2 = 3; +			if (intcon[c2.val] != 0)  c2.val = c2.val + 1; +			if ((c2.val == 17) || (c2.val == 18))  c2.val = 16; +			entroct(4); +			entroct(d2); +			entroct(c2.val); +		} +	} +	break; +	case 4 : { +		veracf(c2.acc); +		i = c2.rep; +		if (i != 0) { +			do { +				i = i - 1; +				entroct(2); +				entroct(c2.val); +				entroct(3); +			} while (!(i <= 0)); +		} +		entroct(2); +		entroct(c2.val); +		entroct(4); +		if (c3.code == 9) { +			entroct(2); +			entroct(c2.val); +			entroct(5); +		} else if (!(set::of(range(0, 1), 4, eos).has(c3.code))) { +			veracf(c3.acc); +			switch (c3.code) { +			case 3 : +				d2 = 8; +				break; +			case 6 : +				d2 = tabdph[(c3.val - 14) << 1]; +				break; +			case 5 : +				d2 = c3.val; +				break; +			default: +				d2 = 7; +			}     /*  case c3.code  */ +			if (d2 == 4)  d2 = 3; +			if (intcon[c2.val] != 0)  c2.val = c2.val + 1; +			entroct(4); +			entroct(d2); +			entroct(tabdbc[((c2.val - 26) << 1) + 1]); +		} +	} +	break; +	}     /* case c2.code  */ +}  /*overlay function testprot : boolean;  var diff --git a/engines/mortevielle/parole2.h b/engines/mortevielle/parole2.h index 6cdaa3e2b4..07ac757d77 100644 --- a/engines/mortevielle/parole2.h +++ b/engines/mortevielle/parole2.h @@ -1,103 +1,95 @@ -  void rot_chariot() -     { -       c1= c2; -       c2= c3; -          { -            c3.val= 32; -            c3.code= 9; -          } -     } +void rot_chariot() { +	c1 = c2; +	c2 = c3; +	{ +		c3.val = 32; +		c3.code = 9; +	} +} -   void init_chariot() -     { -          { -            c3.rep= 0; -            c3.freq= 0; -            c3.acc= 0; -          } -       rot_chariot(); -       rot_chariot(); -     } +void init_chariot() { +	{ +		c3.rep = 0; +		c3.freq = 0; +		c3.acc = 0; +	} +	rot_chariot(); +	rot_chariot(); +} -void trait_ph() -   { -            const array<0,2,integer> deca -                  = {{300,30,40}}; +void trait_ph() { +	const array<0, 2, integer> deca +	= {{300, 30, 40}}; -     ptr_tcph= pred(integer,num_ph); -     ledeb=swap(t_cph[ptr_tcph]) + deca[typlec]; -     lefin=swap(t_cph[ptr_tcph+1]) + deca[typlec]; -     nb_word= lefin - ledeb; -     ptr_tcph=(cardinal)ledeb >> 1; -     ptr_word = 0; -     do { -       memw[adword+ ptr_word]= t_cph[ptr_tcph]; -       ptr_word = ptr_word +2; -       ptr_tcph = ptr_tcph+1; -     } while (!(ptr_tcph>=((cardinal)lefin >> 1))); +	ptr_tcph = pred(integer, num_ph); +	ledeb = swap(t_cph[ptr_tcph]) + deca[typlec]; +	lefin = swap(t_cph[ptr_tcph + 1]) + deca[typlec]; +	nb_word = lefin - ledeb; +	ptr_tcph = (cardinal)ledeb >> 1; +	ptr_word = 0; +	do { +		memw[adword + ptr_word] = t_cph[ptr_tcph]; +		ptr_word = ptr_word + 2; +		ptr_tcph = ptr_tcph + 1; +	} while (!(ptr_tcph >= ((cardinal)lefin >> 1))); -     ptr_oct= 0; -     ptr_word= 0; -     init_chariot(); +	ptr_oct = 0; +	ptr_word = 0; +	init_chariot(); -     do { -       rot_chariot(); -       charg_car(); -       trait_car(); -     } while (!(ptr_word >= nb_word)); +	do { +		rot_chariot(); +		charg_car(); +		trait_car(); +	} while (!(ptr_word >= nb_word)); -     rot_chariot(); -     trait_car(); -     entroct(ord('#')); -   } +	rot_chariot(); +	trait_car(); +	entroct(ord('#')); +} -   void parole(integer rep, integer ht, integer typ) -    { -          array<0,500,integer> savph; -          integer i; -          integer tempo; +void parole(integer rep, integer ht, integer typ) { +	array<0, 500, integer> savph; +	integer i; +	integer tempo; -      if (sonoff)  return; -      num_ph= rep; -      haut= ht; -      typlec= typ; -      if (typlec!=0)  -         { -           for( i=0; i <= 500; i ++) savph[i]=t_cph[i]; -           tempo= tempo_bruit; -         } -                   else -          if (haut>5)  tempo= tempo_f; -                    else tempo= tempo_m; -      addfix= (real)((tempo-addv[0]))/256; -      cctable(tbi); -      switch (typ) { -              case 1 : { -                    charge_bruit(); -                    /*if zuul then zzuul(adbruit,0,1095);*/ -                    regenbruit(); -                  } -                  break; -               case 2 : { -                    charge_son(); -                    charge_phbruit(); -                  } -                  break; -      } -      trait_ph(); -      litph(tbi,typ,tempo); -      if (typlec!=0)  -         for( i=0; i <= 500; i ++) -            { -              t_cph[i]=savph[i]; -              mlec=typlec; -            } -      writepal(numpal); -    } +	if (sonoff)  return; +	num_ph = rep; +	haut = ht; +	typlec = typ; +	if (typlec != 0) { +		for (i = 0; i <= 500; i ++) savph[i] = t_cph[i]; +		tempo = tempo_bruit; +	} else if (haut > 5)  tempo = tempo_f; +	else tempo = tempo_m; +	addfix = (real)((tempo - addv[0])) / 256; +	cctable(tbi); +	switch (typ) { +	case 1 : { +		charge_bruit(); +		/*if zuul then zzuul(adbruit,0,1095);*/ +		regenbruit(); +	} +	break; +	case 2 : { +		charge_son(); +		charge_phbruit(); +	} +	break; +	} +	trait_ph(); +	litph(tbi, typ, tempo); +	if (typlec != 0) +		for (i = 0; i <= 500; i ++) { +			t_cph[i] = savph[i]; +			mlec = typlec; +		} +	writepal(numpal); +} diff --git a/engines/mortevielle/prog.h b/engines/mortevielle/prog.h index a3ba1896ae..7bdea5b850 100644 --- a/engines/mortevielle/prog.h +++ b/engines/mortevielle/prog.h @@ -1,346 +1,319 @@ -/* overlay */ void change_gd(integer ngd) -{ -      integer i; +/* overlay */ void change_gd(integer ngd) { +	integer i; -  hide_mouse(); -  gd= ngd; -  hirs(); -  init_mouse(); -  show_mouse(); -  dessine_rouleau(); -  tinke(); -  pendule(); -  if (ipers!=0)  affper(ipers); else person(); -  clsf2(); -  clsf3(); -  maff= 68; -  afdes(0); -  repon(2,crep); -  menu_aff(); +	hide_mouse(); +	gd = ngd; +	hirs(); +	init_mouse(); +	show_mouse(); +	dessine_rouleau(); +	tinke(); +	pendule(); +	if (ipers != 0)  affper(ipers); +	else person(); +	clsf2(); +	clsf3(); +	maff = 68; +	afdes(0); +	repon(2, crep); +	menu_aff();  } -/* overlay */ void antegame() -{ -     integer cx; -   registres regs; - array<0,511,char> buffer; -  integer i,j,k; -   array<0,2,boolean> test; -    array<0,7,char> g; +/* overlay */ void antegame() { +	integer cx; +	registres regs; +	array<0, 511, char> buffer; +	integer i, j, k; +	array<0, 2, boolean> test; +	array<0, 7, char> g; - hide_mouse(); - imen= false; - g[1]='M'; -perdu= true; - anyone= false; -okdes= true; - test[0]= false; - test[1]=false; - g[0]='\40'; - col= false; - tesok= true; - test[2]=false; - g[7]=g[0]; - g[2]='A'; - cache= false; - brt= false; - maff= 68; - g[5]='E'; - mnumo= 0; - prebru= 0; - g[4]='T'; - x= 0; - y= 0; - num= 0; - hdb= 0; - hfb= 0; - cs= 0; - is= 0; - k= 0; - ment= 0; -syn= true; -fouil= true; - mchai= 0; - inei= 0; - initouv(); - g[3]='S'; - g[6]='R'; - iouv= 0; - dobj= 0; - affrep(); - stpou= ind_mess; - while ((test[k]==false) && (k<2))  - { -   regs.ax=0; -   k=succ(integer,k); -   intr(19,regs); -    { -      regs.ax=0x201;regs.cx=0x1;regs.dx=0x100+k-1;regs.es=seg(buffer);regs.bx=ofs(buffer); -      intr(19,regs); -      test[k]=! imen; -      i=0; -      while ((test[k]) && (i<19))  -        { -          regs.ax=0x201; -          syn= false;regs.cx=0x2700+i;regs.dx=0x100+k-1;regs.es=seg(buffer);regs.bx=ofs(buffer); -          intr(19,regs);if (lo(regs.flags) % 2==1)  test[k]=false;i=i+1; -        } -        okdes= false; -        solu= true; -      for( j=0; j <= 7; j ++) if (buffer[j+504]!=g[j])  test[k]=false; -    } -   perdu= false; -   fouil= false; - } - person(); - tinke(); - pendule(); - afdes(0); - repon(2,crep); - clsf3(); - solu= false; - tmlieu(s.mlieu); - modinv(); - if (s.derobj!= 0)  modobj2(s.derobj+ 400,test[1],test[2]); -                 else tesok=test[1] || test[2]; - show_mouse(); +	hide_mouse(); +	imen = false; +	g[1] = 'M'; +	perdu = true; +	anyone = false; +	okdes = true; +	test[0] = false; +	test[1] = false; +	g[0] = '\40'; +	col = false; +	tesok = true; +	test[2] = false; +	g[7] = g[0]; +	g[2] = 'A'; +	cache = false; +	brt = false; +	maff = 68; +	g[5] = 'E'; +	mnumo = 0; +	prebru = 0; +	g[4] = 'T'; +	x = 0; +	y = 0; +	num = 0; +	hdb = 0; +	hfb = 0; +	cs = 0; +	is = 0; +	k = 0; +	ment = 0; +	syn = true; +	fouil = true; +	mchai = 0; +	inei = 0; +	initouv(); +	g[3] = 'S'; +	g[6] = 'R'; +	iouv = 0; +	dobj = 0; +	affrep(); +	stpou = ind_mess; +	while ((test[k] == false) && (k < 2)) { +		regs.ax = 0; +		k = succ(integer, k); +		intr(19, regs); +		{ +			regs.ax = 0x201; +			regs.cx = 0x1; +			regs.dx = 0x100 + k - 1; +			regs.es = seg(buffer); +			regs.bx = ofs(buffer); +			intr(19, regs); +			test[k] = ! imen; +			i = 0; +			while ((test[k]) && (i < 19)) { +				regs.ax = 0x201; +				syn = false; +				regs.cx = 0x2700 + i; +				regs.dx = 0x100 + k - 1; +				regs.es = seg(buffer); +				regs.bx = ofs(buffer); +				intr(19, regs); +				if (lo(regs.flags) % 2 == 1)  test[k] = false; +				i = i + 1; +			} +			okdes = false; +			solu = true; +			for (j = 0; j <= 7; j ++) if (buffer[j + 504] != g[j])  test[k] = false; +		} +		perdu = false; +		fouil = false; +	} +	person(); +	tinke(); +	pendule(); +	afdes(0); +	repon(2, crep); +	clsf3(); +	solu = false; +	tmlieu(s.mlieu); +	modinv(); +	if (s.derobj != 0)  modobj2(s.derobj + 400, test[1], test[2]); +	else tesok = test[1] || test[2]; +	show_mouse();  }  /* NIVEAU 3 */  /* procedure PROGRAMME */ -void tmaj3() -{ - integer j,h,m; +void tmaj3() { +	integer j, h, m; - calch(j,h,m); - if (m== 30)  m= 1; - h= h+ (j* 24); - m= m+ (h* 2); - s.heure= chr(m); +	calch(j, h, m); +	if (m == 30)  m = 1; +	h = h + (j * 24); +	m = m + (h * 2); +	s.heure = chr(m);  }  void tsitu()  { - integer h,j,m; +	integer h, j, m; - if (! col)  clsf2(); - syn= false; - iesc= false; - if (anyone)  goto L1; - if (brt)  -  if ((msg[3]== depla) || (msg[4]== sortir) || (msg[4]== dormir) || -     (msg[4]== manger))  -  { -   ctrm= 4; -   goto L2; -  } - if (msg[3]== depla)       taller(); - if (msg[3]== discut)      tparler(); - if (msg[3]== invent)      tsprendre(); - if (msg[4]== attacher)    tattacher(); - if (msg[4]== attendre)    tattendre(); - if (msg[4]== defoncer)    tdefoncer(); - if (msg[4]== dormir)      tdormir(); - if (msg[4]== ecouter)     tecouter(); - if (msg[4]== entrer)      tentrer(); - if (msg[4]== fermer)      tfermer(); - if (msg[4]== fouiller)    tfouiller(); - if (msg[4]== frapper)     tfrapper(); - if (msg[4]== gratter)     tgratter(); - if (msg[4]== lire)        tlire(); - if (msg[4]== manger)      tmanger(); - if (msg[4]== mettre)      tmettre(); - if (msg[4]== ouvrir)      touvrir(); - if (msg[4]== prendre)     tprendre(); - if (msg[4]== regarder)    tregarder(); - if (msg[4]== sentir)      tsentir(); - if (msg[4]== sonder)      tsonder(); - if (msg[4]== sortir)      tsortir(); - if (msg[4]== soulever)    tsoulever(); - if (msg[4]== tourner)     ttourner(); - if (msg[4]== scacher)     - { -  tcacher(); -  goto L1; - } - if (msg[4]== sfouiller)   tsfouiller(); - if (msg[4]== slire)       tslire(); - if (msg[4]== sposer)      tposer(); - if (msg[4]== sregarder)   tsregarder(); - cache= false; +	if (! col)  clsf2(); +	syn = false; +	iesc = false; +	if (anyone)  goto L1; +	if (brt) +		if ((msg[3] == depla) || (msg[4] == sortir) || (msg[4] == dormir) || +		        (msg[4] == manger)) { +			ctrm = 4; +			goto L2; +		} +	if (msg[3] == depla)       taller(); +	if (msg[3] == discut)      tparler(); +	if (msg[3] == invent)      tsprendre(); +	if (msg[4] == attacher)    tattacher(); +	if (msg[4] == attendre)    tattendre(); +	if (msg[4] == defoncer)    tdefoncer(); +	if (msg[4] == dormir)      tdormir(); +	if (msg[4] == ecouter)     tecouter(); +	if (msg[4] == entrer)      tentrer(); +	if (msg[4] == fermer)      tfermer(); +	if (msg[4] == fouiller)    tfouiller(); +	if (msg[4] == frapper)     tfrapper(); +	if (msg[4] == gratter)     tgratter(); +	if (msg[4] == lire)        tlire(); +	if (msg[4] == manger)      tmanger(); +	if (msg[4] == mettre)      tmettre(); +	if (msg[4] == ouvrir)      touvrir(); +	if (msg[4] == prendre)     tprendre(); +	if (msg[4] == regarder)    tregarder(); +	if (msg[4] == sentir)      tsentir(); +	if (msg[4] == sonder)      tsonder(); +	if (msg[4] == sortir)      tsortir(); +	if (msg[4] == soulever)    tsoulever(); +	if (msg[4] == tourner)     ttourner(); +	if (msg[4] == scacher) { +		tcacher(); +		goto L1; +	} +	if (msg[4] == sfouiller)   tsfouiller(); +	if (msg[4] == slire)       tslire(); +	if (msg[4] == sposer)      tposer(); +	if (msg[4] == sregarder)   tsregarder(); +	cache = false;  L1: - if (anyone)  - { -  quelquun(); -  anyone= false; -  goto L2; - } - calch(j,h,m); - if ((((h== 12) || (h== 13) || (h== 19)) && (s.mlieu!= 10)) || - ((h> 0) && (h< 6) && (s.mlieu!= 0)))  s.conf= s.conf+ 1; - if (((s.mlieu< 16) || (s.mlieu> 19)) && (s.mlieu!= 23) - && (s.mlieu!= 0) && (s.derobj!= 152) && (! perdu))  - { -  if ((s.conf> 99) && (h> 8) && (h< 16))  -  { -   crep= 1501; -   tperd(); -  } -  if ((s.conf> 99) && (h> 0) && (h< 9))  -  { -   crep= 1508; -   tperd(); -  } -  if ((j> 1) && (h> 8) && (! perdu))  -  { -   crep= 1502; -   tperd(); -  } - } +	if (anyone) { +		quelquun(); +		anyone = false; +		goto L2; +	} +	calch(j, h, m); +	if ((((h == 12) || (h == 13) || (h == 19)) && (s.mlieu != 10)) || +	        ((h > 0) && (h < 6) && (s.mlieu != 0)))  s.conf = s.conf + 1; +	if (((s.mlieu < 16) || (s.mlieu > 19)) && (s.mlieu != 23) +	        && (s.mlieu != 0) && (s.derobj != 152) && (! perdu)) { +		if ((s.conf > 99) && (h > 8) && (h < 16)) { +			crep = 1501; +			tperd(); +		} +		if ((s.conf > 99) && (h > 0) && (h < 9)) { +			crep = 1508; +			tperd(); +		} +		if ((j > 1) && (h > 8) && (! perdu)) { +			crep = 1502; +			tperd(); +		} +	}  L2: - mennor(); +	mennor();  } -void sv_game(integer n);  +void sv_game(integer n); -void ld_game(integer n);  +void ld_game(integer n); -void tecran() -{ -        const char idem[] = "Idem"; -        const integer lim = 20000; - integer temps; - char inkey; - boolean oo, funct; +void tecran() { +	const char idem[] = "Idem"; +	const integer lim = 20000; +	integer temps; +	char inkey; +	boolean oo, funct; - clsf3(); - oo= false; - ctrm= 0; - if (! iesc)  - { -   draw_menu(); -   imen= true; -   temps= 0; -   key= 0; -   funct= false; -   inkey='.'; +	clsf3(); +	oo = false; +	ctrm = 0; +	if (! iesc) { +		draw_menu(); +		imen = true; +		temps = 0; +		key = 0; +		funct = false; +		inkey = '.'; -   do { -     mdn(); -     tinke(); -     mov_mouse(funct,inkey); -     temps= temps+ 1; -   } while (!((choisi) || (temps > lim) || (funct) || (anyone))); +		do { +			mdn(); +			tinke(); +			mov_mouse(funct, inkey); +			temps = temps + 1; +		} while (!((choisi) || (temps > lim) || (funct) || (anyone))); -   erase_menu(); -   imen= false; -   if (set::of('\1','\3','\5','\7','\11', eos).has(inkey))  -      { -        change_gd((cardinal)pred(integer,ord(inkey)) >> 1); -        return; -      } -   if (choisi && (msg[3]==sauve))  sv_game(msg[4] & 7); -   if (choisi && (msg[3]==charge))  ld_game(pred(integer,msg[4] & 7)); -   if (inkey== '\103')          /* F9 */ -   { -     temps = do_alert(stpou,1); -     return; -   } -   else -    if (inkey== '\77')  -    { -     if ((mnumo!= no_choice) && ((msg[3]== action) || (msg[3]== saction)))  -     { -      msg[4]= mnumo; -      ecr3(idem); -     } -     else return; -    } -    else -     if (inkey== '\104')  -     { -      if ((x!= 0) && (y!= 0))  num= 9999; -      return; -     } -  } -  if (inkey== '\73')  -  { -   arret= true; -   tmaj3(); -  } -  else -  { -   if ((funct) && (inkey!= '\77'))  return; -   if (temps> lim)  -   { -    repon(2,141); -    if (num== 9999)  num= 0; -   } -   else -   { -    mnumo= msg[3]; -    if ((msg[3]== action) || (msg[3]== saction))  mnumo= msg[4]; -    if (! anyone)  -    { -     if ((fouil) || (obpart))  -     { -       if (y_s< 12)  return; -      if ((msg[4]== sonder) || (msg[4]== soulever))  -      { -       oo= true; -       if ((msg[4]== soulever) || (obpart))  -       { -        finfouil(); -        caff= s.mlieu; -        crep= 998; -       } -       else tsuiv(); -       mennor(); -      } -     } -    } -    do { -      if (! oo)  tsitu(); -      if ((ctrm== 0) && (! perdu) && (! solu))  -      { -        taffich(); -        if (okdes)  -        { -          okdes= false; -          dessin(0); -        } -        if ((! syn) || (col))  repon(2,crep); -      } -    } while (!(! syn)); -   if (ctrm!= 0)  tctrm(); -  } - } +		erase_menu(); +		imen = false; +		if (set::of('\1', '\3', '\5', '\7', '\11', eos).has(inkey)) { +			change_gd((cardinal)pred(integer, ord(inkey)) >> 1); +			return; +		} +		if (choisi && (msg[3] == sauve))  sv_game(msg[4] & 7); +		if (choisi && (msg[3] == charge))  ld_game(pred(integer, msg[4] & 7)); +		if (inkey == '\103') {       /* F9 */ +			temps = do_alert(stpou, 1); +			return; +		} else if (inkey == '\77') { +			if ((mnumo != no_choice) && ((msg[3] == action) || (msg[3] == saction))) { +				msg[4] = mnumo; +				ecr3(idem); +			} else return; +		} else if (inkey == '\104') { +			if ((x != 0) && (y != 0))  num = 9999; +			return; +		} +	} +	if (inkey == '\73') { +		arret = true; +		tmaj3(); +	} else { +		if ((funct) && (inkey != '\77'))  return; +		if (temps > lim) { +			repon(2, 141); +			if (num == 9999)  num = 0; +		} else { +			mnumo = msg[3]; +			if ((msg[3] == action) || (msg[3] == saction))  mnumo = msg[4]; +			if (! anyone) { +				if ((fouil) || (obpart)) { +					if (y_s < 12)  return; +					if ((msg[4] == sonder) || (msg[4] == soulever)) { +						oo = true; +						if ((msg[4] == soulever) || (obpart)) { +							finfouil(); +							caff = s.mlieu; +							crep = 998; +						} else tsuiv(); +						mennor(); +					} +				} +			} +			do { +				if (! oo)  tsitu(); +				if ((ctrm == 0) && (! perdu) && (! solu)) { +					taffich(); +					if (okdes) { +						okdes = false; +						dessin(0); +					} +					if ((! syn) || (col))  repon(2, crep); +				} +			} while (!(! syn)); +			if (ctrm != 0)  tctrm(); +		} +	}  }  /* NIVEAU 1 */ -void theure() -{ - vj= ord(s.heure); - vh= vj % 48; - vj= vj / 48; - vm= vh % 2; - vh= vh / 2; - heu= vh; - if (vm== 1)  min= 30; else min= 0; +void theure() { +	vj = ord(s.heure); +	vh = vj % 48; +	vj = vj / 48; +	vm = vh % 2; +	vh = vh / 2; +	heu = vh; +	if (vm == 1)  min = 30; +	else min = 0;  } -void tjouer() -{ -  antegame(); -  do { -    tecran(); -  } while (!((arret) || (solu) || (perdu))); -  if (solu)  tmaj1(); else -     if (perdu)  tencore(); +void tjouer() { +	antegame(); +	do { +		tecran(); +	} while (!((arret) || (solu) || (perdu))); +	if (solu)  tmaj1(); +	else if (perdu)  tencore();  } diff --git a/engines/mortevielle/ques.h b/engines/mortevielle/ques.h index 66584d5d3c..87d0c87cd1 100644 --- a/engines/mortevielle/ques.h +++ b/engines/mortevielle/ques.h @@ -1,121 +1,113 @@ -/* overlay */ boolean ques() -{ -         const array<1,10,integer> ta -             = {{ 511, 516, 524, 531, 545, -                 552, 559, 563, 570, 576}}; -         const array<1,10,integer> ok -            = {{ 4, 7, 1, 6, 4, 4, 2, 5, 3, 1 }}; +/* overlay */ boolean ques() { +	const array<1, 10, integer> ta +	= {{ +			511, 516, 524, 531, 545, +			552, 559, 563, 570, 576 +		} +	}; +	const array<1, 10, integer> ok +	= {{ 4, 7, 1, 6, 4, 4, 2, 5, 3, 1 }}; -       boolean q, func, test; -       integer i,j,k,y,memk; -       integer tay , tmax; -       integer rep, prem, der; -       phrase st; -       char key; -       mult_rect coor; -       array<1,14,str40> chaines; -       integer compte; +	boolean q, func, test; +	integer i, j, k, y, memk; +	integer tay , tmax; +	integer rep, prem, der; +	phrase st; +	char key; +	mult_rect coor; +	array<1, 14, str40> chaines; +	integer compte; -  boolean ques_result; -  test=false; -  i=0; -  compte= 0; +	boolean ques_result; +	test = false; +	i = 0; +	compte = 0; -  do { -    hide_mouse(); -    hirs(); -    show_mouse(); -    i= i+1; -    deline(ta[i],st,tay); -    if (res==1)  y=29; else y=23; -    box(15,gd,0,14,630,y,255); -    afftex(st,20,15,100,2,0); -    if (i!=10)  -       { -         prem= ta[i]+1; -         der= ta[i+1]-1; -       } -     else -       { -         prem= 503; -         der= 510; -       } -    y=35; -    tmax= 0; -    memk= 1; -    for( j= prem; j <= der; j ++) -      { -        deline(j,st,tay); -        if (tay>tmax)  tmax= tay; -        afftex(st,100,y,100,1,0); -        chaines[memk]= delig; -        memk= memk+1; -        y= y+8; -      } -    for( j= 1; j <= succ(integer,der-prem); j ++) -      { -      { -          rectangle& with = coor[j];  +	do { +		hide_mouse(); +		hirs(); +		show_mouse(); +		i = i + 1; +		deline(ta[i], st, tay); +		if (res == 1)  y = 29; +		else y = 23; +		box(15, gd, 0, 14, 630, y, 255); +		afftex(st, 20, 15, 100, 2, 0); +		if (i != 10) { +			prem = ta[i] + 1; +			der = ta[i + 1] - 1; +		} else { +			prem = 503; +			der = 510; +		} +		y = 35; +		tmax = 0; +		memk = 1; +		for (j = prem; j <= der; j ++) { +			deline(j, st, tay); +			if (tay > tmax)  tmax = tay; +			afftex(st, 100, y, 100, 1, 0); +			chaines[memk] = delig; +			memk = memk + 1; +			y = y + 8; +		} +		for (j = 1; j <= succ(integer, der - prem); j ++) { +			{ +				rectangle &with = coor[j]; -          with.x1= 45*res; -          with.x2= (tmax*3 + 55)*res; -          with.y1= 27 + j*8; -          with.y2= 34 + j*8; -          with.etat= true; -      } -        while (length(chaines[j] )<tmax)  -          { -            chaines[j]= chaines[j] +' '; -          } -      } -    coor[j+1].etat= false; -    if (res==1)  rep=10; else rep=6; -    boite(80, 33, 40+tmax*rep, (der-prem)*8+ 16, 15); -    rep= 0; -    j= 0; -    memk= 0; -    do { -      clic= false; -      tesok=false; -      mov_mouse(func,key); -      k= 1; -      while (coor[k].etat && ! dans_rect(coor[k]))  k= k+1; -      if (coor[k].etat)  -         { -           if ((memk!=0) && (memk!=k))  -              { -                /*DeLine(T_rec[ta[i]+memk].indis,T_rec[ta[i]+memk].point,st,tay);*/ -                for( j= 1; j <= tmax; j ++) st[j]= chaines[memk][j]; -                st[1+tmax]= '$'; -                afftex(st,100,27+memk*8,100,1,0); -              } -           if (memk!=k)  -              { -                /*DeLine(T_rec[pred(prem)+k].indis,T_rec[pred(prem)+k].point,st,tay);*/ -                for( j= 1; j <= tmax; j ++) st[j]= chaines[k][j]; -                st[1+tmax]= '$'; -                afftex(st,100,27+k*8,100,1,1); -                memk= k; -              } -         } -       else -         if (memk!=0)  -            { -              for( j= 1; j <= tmax; j ++) st[j]= chaines[memk][j]; -              st[1+tmax]= '$'; -              afftex(st,100,27+memk*8,100,1,0); -              memk=0; -            } -    } while (!((memk!=0) && clic)); -    if (memk==ok[i])  compte=compte+1; -                  else { -                         if (i==5)  i=i +1; -                         if ((i==7) || (i==8))  i= 10; -                       } -    if (i==10)  q=   /*testprot*/ true; -  } while (!(i==10)); -  ques_result= (compte==10) && q; -  return ques_result; +				with.x1 = 45 * res; +				with.x2 = (tmax * 3 + 55) * res; +				with.y1 = 27 + j * 8; +				with.y2 = 34 + j * 8; +				with.etat = true; +			} +			while (length(chaines[j]) < tmax) { +				chaines[j] = chaines[j] + ' '; +			} +		} +		coor[j + 1].etat = false; +		if (res == 1)  rep = 10; +		else rep = 6; +		boite(80, 33, 40 + tmax * rep, (der - prem) * 8 + 16, 15); +		rep = 0; +		j = 0; +		memk = 0; +		do { +			clic = false; +			tesok = false; +			mov_mouse(func, key); +			k = 1; +			while (coor[k].etat && ! dans_rect(coor[k]))  k = k + 1; +			if (coor[k].etat) { +				if ((memk != 0) && (memk != k)) { +					/*DeLine(T_rec[ta[i]+memk].indis,T_rec[ta[i]+memk].point,st,tay);*/ +					for (j = 1; j <= tmax; j ++) st[j] = chaines[memk][j]; +					st[1 + tmax] = '$'; +					afftex(st, 100, 27 + memk * 8, 100, 1, 0); +				} +				if (memk != k) { +					/*DeLine(T_rec[pred(prem)+k].indis,T_rec[pred(prem)+k].point,st,tay);*/ +					for (j = 1; j <= tmax; j ++) st[j] = chaines[k][j]; +					st[1 + tmax] = '$'; +					afftex(st, 100, 27 + k * 8, 100, 1, 1); +					memk = k; +				} +			} else if (memk != 0) { +				for (j = 1; j <= tmax; j ++) st[j] = chaines[memk][j]; +				st[1 + tmax] = '$'; +				afftex(st, 100, 27 + memk * 8, 100, 1, 0); +				memk = 0; +			} +		} while (!((memk != 0) && clic)); +		if (memk == ok[i])  compte = compte + 1; +		else { +			if (i == 5)  i = i + 1; +			if ((i == 7) || (i == 8))  i = 10; +		} +		if (i == 10)  q =   /*testprot*/ true; +	} while (!(i == 10)); +	ques_result = (compte == 10) && q; +	return ques_result;  } diff --git a/engines/mortevielle/sprint.h b/engines/mortevielle/sprint.h index b54e2ba51c..854fdd6359 100644 --- a/engines/mortevielle/sprint.h +++ b/engines/mortevielle/sprint.h @@ -1,55 +1,54 @@ -void fill_box(integer x,integer y,integer dx) -{ -  box(15,gd,pred(integer,x) << 3, pred(integer,y) << 3, pred(integer,x+dx) << 3, y << 3, 255); +void fill_box(integer x, integer y, integer dx) { +	box(15, gd, pred(integer, x) << 3, pred(integer, y) << 3, pred(integer, x + dx) << 3, y << 3, 255);  } -void clear_box(integer x,integer y,integer dx) -{ -  box(0,gd,pred(integer,x) << 3, pred(integer,y) << 3, pred(integer,x+dx) << 3, y << 3, 255); +void clear_box(integer x, integer y, integer dx) { +	box(0, gd, pred(integer, x) << 3, pred(integer, y) << 3, pred(integer, x + dx) << 3, y << 3, 255);  } -void writeg(str255 l,integer c) +void writeg(str255 l, integer c)  { -     integer i, x, xo, yo; -     integer cecr; -     boolean t; +	integer i, x, xo, yo; +	integer cecr; +	boolean t; -/*  debug('writeg : '+l);*/ +	/*  debug('writeg : '+l);*/ -  if (l=="")  return; -  hide_mouse(); -  xo=xwhere; -  yo=ywhere; -  if (res==2)  i=6; -           else i=10; -  x=xo+i*length(l); -  switch (c) { -          case 1:case 3  : { -                   cecr=0; -                   box(15,gd,xo,yo,x,yo+7,255); -                 } -                 break; -             case 4 : { -                   cecr=0; -                 } -                 break; -             case 5 : { -                   cecr=15; -                 } -                 break; -           case 0:case 2 : { -                   cecr=15; -                   box(0,gd,xo,yo,x,yo+7,255); -                 } -                 break; -  } -  xo=xo+1; -  yo=yo+1; -  for( x=1; x <= length(l); x ++) -     { -       affcar(gd,xo,yo,cecr,ord(l[x])); -       xo=xo+i; -     } -  show_mouse(); +	if (l == "")  return; +	hide_mouse(); +	xo = xwhere; +	yo = ywhere; +	if (res == 2)  i = 6; +	else i = 10; +	x = xo + i * length(l); +	switch (c) { +	case 1: +	case 3  : { +		cecr = 0; +		box(15, gd, xo, yo, x, yo + 7, 255); +	} +	break; +	case 4 : { +		cecr = 0; +	} +	break; +	case 5 : { +		cecr = 15; +	} +	break; +	case 0: +	case 2 : { +		cecr = 15; +		box(0, gd, xo, yo, x, yo + 7, 255); +	} +	break; +	} +	xo = xo + 1; +	yo = yo + 1; +	for (x = 1; x <= length(l); x ++) { +		affcar(gd, xo, yo, cecr, ord(l[x])); +		xo = xo + i; +	} +	show_mouse();  } diff --git a/engines/mortevielle/taffich.h b/engines/mortevielle/taffich.h index 8f8cb1e460..00203118d8 100644 --- a/engines/mortevielle/taffich.h +++ b/engines/mortevielle/taffich.h @@ -1,203 +1,183 @@ -void chardes( str11 nom, long_integer passe, integer long_) -   { -         integer i, p, l; -         byte b; -         untyped_file f; +void chardes(str11 nom, long_integer passe, integer long_) { +	integer i, p, l; +	byte b; +	untyped_file f; -     /* debug('chardes'); */ -     assign(f,nom); -     /*$i-*/ -     reset(f); -     testfi(); -     p= 0; -     while (passe>127)  -       { -         p=p+1; -         passe=passe-128; -       } -     if (p!=0)  seek(f,p); -     p= trunc(passe); -     l= long_+p; -     i= 0; -     while (l>0)  -       { -         blockread(f,mem[0x6000+i],1); -         testfi(); -         l= l-128; -         i= i+128; -       } -     close(f); -     for( i=p; i <= long_+p; i ++) mem[0x7000+i-p]=mem[0x6000+i]; -     /*$i+*/ -   } +	/* debug('chardes'); */ +	assign(f, nom); +	/*$i-*/ +	reset(f); +	testfi(); +	p = 0; +	while (passe > 127) { +		p = p + 1; +		passe = passe - 128; +	} +	if (p != 0)  seek(f, p); +	p = trunc(passe); +	l = long_ + p; +	i = 0; +	while (l > 0) { +		blockread(f, mem[0x6000 + i], 1); +		testfi(); +		l = l - 128; +		i = i + 128; +	} +	close(f); +	for (i = p; i <= long_ + p; i ++) mem[0x7000 + i - p] = mem[0x6000 + i]; +	/*$i+*/ +} -void charani( str11 nom, long_integer passe, integer long_) -   { -         integer i, p, l; -         byte b; -         untyped_file f; +void charani(str11 nom, long_integer passe, integer long_) { +	integer i, p, l; +	byte b; +	untyped_file f; -     /* debug('charani'); */ -     assign(f,nom); -     /*$i-*/ -     reset(f); -     testfi(); -     p= 0; -     while (passe>127)  -       { -         passe=passe-128; -         p=p+1; -       } -     if (p!=0)  seek(f,p); -     p= trunc(passe); -     l=long_+p; -     i= 0; -     while (l>0)  -       { -         blockread(f,mem[0x6000+i],1); -         testfi(); -         l=l-128; -         i=i+128; -       } -     close(f); -     for( i=p; i <= long_+p; i ++) mem[0x7314+i-p]=mem[0x6000+i]; -     /*$i+*/ -   } +	/* debug('charani'); */ +	assign(f, nom); +	/*$i-*/ +	reset(f); +	testfi(); +	p = 0; +	while (passe > 127) { +		passe = passe - 128; +		p = p + 1; +	} +	if (p != 0)  seek(f, p); +	p = trunc(passe); +	l = long_ + p; +	i = 0; +	while (l > 0) { +		blockread(f, mem[0x6000 + i], 1); +		testfi(); +		l = l - 128; +		i = i + 128; +	} +	close(f); +	for (i = p; i <= long_ + p; i ++) mem[0x7314 + i - p] = mem[0x6000 + i]; +	/*$i+*/ +} -void taffich() -{ -         const array<136,140,byte> tran1 -               = {{ 121, 121, 138, 139, 120 }}; -         const array<153,161,byte> tran2 -               = {{ 150, 150, 152, 152, 100, -                   110, 159, 100, 100 }}; -      integer i, m, a, b, cx, handle, -      npal; -      long_integer lgt, lhandle; -      str11 nom; -      integer palh,k,j; -      array<0,15,integer> alllum; +void taffich() { +	const array<136, 140, byte> tran1 +	= {{ 121, 121, 138, 139, 120 }}; +	const array<153, 161, byte> tran2 +	= {{ +			150, 150, 152, 152, 100, +			110, 159, 100, 100 +		} +	}; +	integer i, m, a, b, cx, handle, +	        npal; +	long_integer lgt, lhandle; +	str11 nom; +	integer palh, k, j; +	array<0, 15, integer> alllum; - a= caff; - if (set::of(range(153,161), eos).has(a))  a= tran2[a]; -                    else if (set::of(range(136,140), eos).has(a))  a= tran1[a]; - b= a; - if (maff== a)  return; - if (a== 16)  - { -  s.pourc[9]= '*'; -  s.teauto[42]= '*'; - } - if (a== 20)  - { -  s.teauto[39]= '*'; -  if (s.teauto[36]== '*')  -  { -   s.pourc[3]= '*'; -   s.teauto[38]= '*'; -  } - } - if (a== 24)  s.teauto[37]= '*'; - if (a== 30)  s.teauto[9]= '*'; - if (a== 31)  - { -  s.pourc[4]= '*'; -  s.teauto[35]= '*'; - } - if (a== 118)  s.teauto[41]= '*'; - if (a== 143)  s.pourc[1]= '*'; - if (a== 150)  s.teauto[34]= '*'; - if (a== 151)  s.pourc[2]= '*'; - okdes= true; - hide_mouse(); - lgt= 0; - if ((a!=50) && (a!=51))  -   { -     m= a+ 2000; -     if ((m> 2001) && (m< 2010))  m= 2001; -     if (m== 2011)  m= 2010; -     if (a== 32)  m= 2034; -     if ((a== 17) && (maff== 14))  m= 2018; -     if (a> 99)  -       if ((is== 1) || (is== 0))  m= 2031; else m= 2032; -     if (((a> 69) && (a< 80)) || (a== 30) || (a== 31) || (a== 144) -       || (a== 147) || (a== 149))  m= 2030; -     if (((a< 27) && (((maff> 69) && (! s.ipre)) || (maff> 99))) -       || ((maff> 29) && (maff< 33)))  m= 2033; -     messint(m); -     maff= a; -     if (a== 159)  a= 86; else -      if (a> 140)  a= a- 67; else -       if (a> 137)  a= a- 66; else -        if (a> 99)  a= a- 64; else -         if (a> 69)  a= a- 42; else -          if (a> 29)  a= a- 5; else -           if (a== 26)  a= 24; else -            if (a> 18)  a= a- 1; -     npal= a; -     for( cx= 0; cx <= (a- 1); cx ++) lgt= lgt+l[cx]; -     handle=l[a]; -     nom= "DXX.mor"; -   } - else -   { -     nom= "DZZ.mor"; -     handle= l[87]; -     if (a== 51)  -        { -          lgt= handle; -          handle= l[88]; -        } -     maff= a; -     npal= a+37; -   } - chardes(nom,lgt,handle); - if (gd==her)  -    { -      for( i=0; i <= 15; i ++) -         { -           palh=memw[0x7000+(succ(integer,i) << 1)]; -           alllum[i]=(palh & 15) + (((cardinal)palh >> 12) & 15) + (((cardinal)palh >> 8) & 15); -         } -      for( i=0; i <= 15; i ++) -         { -           k=0; -           for( j=0; j <= 15; j ++) if (alllum[j]>alllum[k])  k=j; -           mem[0x7000+2+(k << 1)]= rang[i]; -           alllum[k]=-1; -         } -    } - numpal=npal; - writepal(npal); +	a = caff; +	if (set::of(range(153, 161), eos).has(a))  a = tran2[a]; +	else if (set::of(range(136, 140), eos).has(a))  a = tran1[a]; +	b = a; +	if (maff == a)  return; +	if (a == 16) { +		s.pourc[9] = '*'; +		s.teauto[42] = '*'; +	} +	if (a == 20) { +		s.teauto[39] = '*'; +		if (s.teauto[36] == '*') { +			s.pourc[3] = '*'; +			s.teauto[38] = '*'; +		} +	} +	if (a == 24)  s.teauto[37] = '*'; +	if (a == 30)  s.teauto[9] = '*'; +	if (a == 31) { +		s.pourc[4] = '*'; +		s.teauto[35] = '*'; +	} +	if (a == 118)  s.teauto[41] = '*'; +	if (a == 143)  s.pourc[1] = '*'; +	if (a == 150)  s.teauto[34] = '*'; +	if (a == 151)  s.pourc[2] = '*'; +	okdes = true; +	hide_mouse(); +	lgt = 0; +	if ((a != 50) && (a != 51)) { +		m = a + 2000; +		if ((m > 2001) && (m < 2010))  m = 2001; +		if (m == 2011)  m = 2010; +		if (a == 32)  m = 2034; +		if ((a == 17) && (maff == 14))  m = 2018; +		if (a > 99) +			if ((is == 1) || (is == 0))  m = 2031; +			else m = 2032; +		if (((a > 69) && (a < 80)) || (a == 30) || (a == 31) || (a == 144) +		        || (a == 147) || (a == 149))  m = 2030; +		if (((a < 27) && (((maff > 69) && (! s.ipre)) || (maff > 99))) +		        || ((maff > 29) && (maff < 33)))  m = 2033; +		messint(m); +		maff = a; +		if (a == 159)  a = 86; +		else if (a > 140)  a = a - 67; +		else if (a > 137)  a = a - 66; +		else if (a > 99)  a = a - 64; +		else if (a > 69)  a = a - 42; +		else if (a > 29)  a = a - 5; +		else if (a == 26)  a = 24; +		else if (a > 18)  a = a - 1; +		npal = a; +		for (cx = 0; cx <= (a - 1); cx ++) lgt = lgt + l[cx]; +		handle = l[a]; +		nom = "DXX.mor"; +	} else { +		nom = "DZZ.mor"; +		handle = l[87]; +		if (a == 51) { +			lgt = handle; +			handle = l[88]; +		} +		maff = a; +		npal = a + 37; +	} +	chardes(nom, lgt, handle); +	if (gd == her) { +		for (i = 0; i <= 15; i ++) { +			palh = memw[0x7000 + (succ(integer, i) << 1)]; +			alllum[i] = (palh & 15) + (((cardinal)palh >> 12) & 15) + (((cardinal)palh >> 8) & 15); +		} +		for (i = 0; i <= 15; i ++) { +			k = 0; +			for (j = 0; j <= 15; j ++) if (alllum[j] > alllum[k])  k = j; +			mem[0x7000 + 2 + (k << 1)] = rang[i]; +			alllum[k] = -1; +		} +	} +	numpal = npal; +	writepal(npal); - if ((b< 15) || (b== 16) || (b== 17) || (b== 24) || (b== 26) || (b== 50))  -    { -      lgt= 0; -      if ((b< 15) || (b== 16) || (b== 17) || (b== 24) || (b== 26))  -         { -           if (b== 26)  b= 18; else -              if (b== 24)  b= 17; else -                 if (b> 15)  b= b- 1; -           for( cx= 0; cx <= (b- 1); cx ++) lgt= lgt+ l[cx+89]; -           handle=l[b+89]; -           nom= "AXX.mor"; -         } -       else -         if (b== 50)  -            { -              nom= "AZZ.mor"; -              handle= 1260; -            } -      charani(nom,lgt,handle); -    } - show_mouse(); - if ((a< 27) && ((maff< 27) || (s.mlieu== 15)) && (msg[4]!= entrer))  -    { -      if ((a== 13) || (a== 14))  person(); -                            else if (! blo)  t11(s.mlieu, cx); -      mpers=  0; -    } +	if ((b < 15) || (b == 16) || (b == 17) || (b == 24) || (b == 26) || (b == 50)) { +		lgt = 0; +		if ((b < 15) || (b == 16) || (b == 17) || (b == 24) || (b == 26)) { +			if (b == 26)  b = 18; +			else if (b == 24)  b = 17; +			else if (b > 15)  b = b - 1; +			for (cx = 0; cx <= (b - 1); cx ++) lgt = lgt + l[cx + 89]; +			handle = l[b + 89]; +			nom = "AXX.mor"; +		} else if (b == 50) { +			nom = "AZZ.mor"; +			handle = 1260; +		} +		charani(nom, lgt, handle); +	} +	show_mouse(); +	if ((a < 27) && ((maff < 27) || (s.mlieu == 15)) && (msg[4] != entrer)) { +		if ((a == 13) || (a == 14))  person(); +		else if (! blo)  t11(s.mlieu, cx); +		mpers =  0; +	}  }  /*    begin diff --git a/engines/mortevielle/var_mor.h b/engines/mortevielle/var_mor.h index c1881be6fe..bdc6b59eb7 100644 --- a/engines/mortevielle/var_mor.h +++ b/engines/mortevielle/var_mor.h @@ -111,58 +111,65 @@ const integer slire = 0x403;  const integer sposer = 0x404;  const integer sregarder = 0x405; -  const array<0,17,byte> tabdbc -          = {{7, 23, 7, 14, 13, 9, 14, 9, 5, 12, 6, 12, 13, 4, 0, 4, 5, 9}}; -  const array<0,15,byte> tabdph -          = {{0, 10, 2, 0, 2, 10, 3, 0, 3, 7, 5, 0, 6, 7, 7, 10}}; -  const array<0,25,byte> typcon -          = {{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3}}; -  const array<0,25,byte> intcon -          = {{1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}}; -  const array<0,363,byte> tnocon -          = {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, -            0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, -            0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, -            0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0, -            0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0, -            0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0, -            0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0, -            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, -            0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0, -            0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0, -            0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -            0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0, -            0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0}}; - - -const matrix<1,8,1,4,byte> don -        = {{{{ 7, 37, 22,  8}}, -          {{19, 33, 23,  7}}, -          {{31, 89, 10, 21}}, -          {{43, 25, 11,  5}}, -          {{55, 37,  5,  8}}, -          {{64, 13, 11,  2}}, -          {{62, 22, 13,  4}}, -          {{62, 25, 13,  5}}}}; - -const array<1,2,varying_string<11> > fic -    = {{ " Sauvegarde", -        " Chargement" }}; - -const array<0,1,byte> addv -   = {{8,8}}; +const array<0, 17, byte> tabdbc += {{7, 23, 7, 14, 13, 9, 14, 9, 5, 12, 6, 12, 13, 4, 0, 4, 5, 9}}; +const array<0, 15, byte> tabdph += {{0, 10, 2, 0, 2, 10, 3, 0, 3, 7, 5, 0, 6, 7, 7, 10}}; +const array<0, 25, byte> typcon += {{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3}}; +const array<0, 25, byte> intcon += {{1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}}; +const array<0, 363, byte> tnocon += {{ +		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +		0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +		0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +		0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +		0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +		0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +		0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +		0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +		0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, +		0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +		0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +		0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +	} +}; + + +const matrix<1, 8, 1, 4, byte> don += {{{{ 7, 37, 22,  8}}, +		{{19, 33, 23,  7}}, +		{{31, 89, 10, 21}}, +		{{43, 25, 11,  5}}, +		{{55, 37,  5,  8}}, +		{{64, 13, 11,  2}}, +		{{62, 22, 13,  4}}, +		{{62, 25, 13,  5}} +	} +}; + +const array<1, 2, varying_string<11> > fic += {{ " Sauvegarde", +		" Chargement" +	} +}; + +const array<0, 1, byte> addv += {{8, 8}};  const char recom[] = " Recommence  "; -     const char f3[] = "F3: Encore"; -     const char f8[] = "F8: Suite"; +const char f3[] = "F3: Encore"; +const char f8[] = "F8: Suite"; -  const integer max_patt = 20; +const integer max_patt = 20; - const array<0,15,byte> rang -      = {{15,14,11,7,13,12,10,6,9,5,3,1,2,4,8,0}}; +const array<0, 15, byte> rang += {{15, 14, 11, 7, 13, 12, 10, 6, 9, 5, 3, 1, 2, 4, 8, 0}};  /*---------------------------------------------------------------------------*/ @@ -177,72 +184,72 @@ typedef varying_string<30> str30;  typedef varying_string<11> str11;  typedef file<byte> fichier_byte;  struct sav_chaine { -                  integer conf; -                  array<0,10,char> pourc; -                 array<0,42,char> teauto; -                   array<0,30,char> sjer; -                 integer mlieu,iboul,ibag,icave,ivier,ipuit; -                 integer derobj,iloic,icryp; -                  boolean ipre; -                 char heure; +	integer conf; +	array<0, 10, char> pourc; +	array<0, 42, char> teauto; +	array<0, 30, char> sjer; +	integer mlieu, iboul, ibag, icave, ivier, ipuit; +	integer derobj, iloic, icryp; +	boolean ipre; +	char heure;  };  struct registres { -           integer ax,bx,cx,dx,bp,si,di,ds,es,flags; +	integer ax, bx, cx, dx, bp, si, di, ds, es, flags; +}; +typedef array<1, 1410, char> phrase; +typedef array<0, maxti, integer> tabint; +struct ind { +	integer indis; +	byte point;  }; -typedef array<1,1410,char> phrase; -typedef array<0,maxti,integer> tabint; - struct ind { -         integer indis; -         byte point; - }; -typedef array<0,maxtd,ind> tabind; +typedef array<0, maxtd, ind> tabind; -typedef matrix<1,7,0,24,byte> tab_mlieu; +typedef matrix<1, 7, 0, 24, byte> tab_mlieu; - typedef array<0,255,real> table; -typedef array<0,255,integer> tablint; +typedef array<0, 255, real> table; +typedef array<0, 255, integer> tablint; -  typedef integer word1; +typedef integer word1;  struct chariot { -           integer val, -           code, -           acc, -           freq, -           rep; +	integer val, +	        code, +	        acc, +	        freq, +	        rep;  };  struct doublet { -        byte x,y; +	byte x, y;  }; -typedef array<1,16,doublet> tabdb; -typedef array<0,107,integer> tfxx; +typedef array<1, 16, doublet> tabdb; +typedef array<0, 107, integer> tfxx;  struct rectangle { -            integer x1, x2, y1, y2; -            boolean etat; +	integer x1, x2, y1, y2; +	boolean etat;  }; -typedef array<1,max_rect,rectangle> mult_rect; +typedef array<1, max_rect, rectangle> mult_rect;  typedef varying_string<40> str40; - struct pattern { -             byte tay, tax; -             matrix<1,max_patt, 1,max_patt,byte> des; - }; +struct pattern { +	byte tay, tax; +	matrix<1, max_patt, 1, max_patt, byte> des; +}; -  struct nhom { -           byte n;     /* numero entre 0 et 32 */ -           array<0,3,byte> hom; -  }; +struct nhom { +	byte n;     /* numero entre 0 et 32 */ +	array<0, 3, byte> hom; +}; -  typedef array<0,15,nhom> t_nhom; +typedef array<0, 15, nhom> t_nhom; -  struct t_pcga { -             byte p; -             t_nhom a; -  }; +struct t_pcga { +	byte p; +	t_nhom a; +}; -  typedef array<0,90,t_pcga> pal_cga; +typedef array<0, 90, t_pcga> pal_cga;  /*---------------------------------------------------------------------------*/ @@ -250,147 +257,147 @@ typedef varying_string<40> str40;  /*---------------------------------------------------------------------------*/  boolean blo, -bh1, -bf1, -bh2, -bh4, -bf4, -bh5, -bh6, -bh8, -bt3, -bt7, -bh9, - -sonoff, -main1, -choisi, -test0, -f2_all, -imen, -cache, -iesc, -perdu, -col, -syn, -fouil, -zuul, -tesok, -obpart, -okdes, -solu, -arret, -anyone, -brt, -rect, -rech_cfiec, -active_menu; +        bh1, +        bf1, +        bh2, +        bh4, +        bf4, +        bh5, +        bh6, +        bh8, +        bt3, +        bt7, +        bh9, + +        sonoff, +        main1, +        choisi, +        test0, +        f2_all, +        imen, +        cache, +        iesc, +        perdu, +        col, +        syn, +        fouil, +        zuul, +        tesok, +        obpart, +        okdes, +        solu, +        arret, +        anyone, +        brt, +        rect, +        rech_cfiec, +        active_menu;  integer x, -y, -t, -vj, -li, -vh, -vm, -jh, -mh, -cs, -gd,                /*  Gd = graph device  */ -hdb, -hfb, -heu, -jou, -key, -min, -num, -max, -res, -ment, -haut, -caff, -maff, -crep, -ades, -iouv, -inei, -ctrm, -dobj, -msg3, -msg4, -mlec, -newgd, -c_zzz, -mchai, -menup, -ipers, -ledeb, -lefin, -mpers, -mnumo, -xprec, -yprec, -perdep, -prebru, -typlec, -num_ph, -xwhere, -ywhere, -numpal, -lderobj, -nb_word, -ptr_oct, -k_tempo, -ptr_tcph, -ptr_word, -color_txt; - -array<0,6400,integer> t_cph; -array<0,4000,byte> tabdon; +        y, +        t, +        vj, +        li, +        vh, +        vm, +        jh, +        mh, +        cs, +        gd,                /*  Gd = graph device  */ +        hdb, +        hfb, +        heu, +        jou, +        key, +        min, +        num, +        max, +        res, +        ment, +        haut, +        caff, +        maff, +        crep, +        ades, +        iouv, +        inei, +        ctrm, +        dobj, +        msg3, +        msg4, +        mlec, +        newgd, +        c_zzz, +        mchai, +        menup, +        ipers, +        ledeb, +        lefin, +        mpers, +        mnumo, +        xprec, +        yprec, +        perdep, +        prebru, +        typlec, +        num_ph, +        xwhere, +        ywhere, +        numpal, +        lderobj, +        nb_word, +        ptr_oct, +        k_tempo, +        ptr_tcph, +        ptr_word, +        color_txt; + +array<0, 6400, integer> t_cph; +array<0, 4000, byte> tabdon;  /*   t_dxx  : array[0..121] of integer;*/  str125 stpou;                               /* donne le % d'indices */  byte is;  char mode;  fichier_byte ficdes;  str125 al_mess, -err_mess, -ind_mess, -al_mess2; - - array<1,8,integer> invt, -nbrep, -nbrepm, - disc; -  array<0,4,integer> msg; - array<1,7,integer> depl; - array<1,8,varying_string<22> > inv; - array<1,7,varying_string<23> > dep; - array<1,21,varying_string<10> > act; - array<1,5,varying_string<11> > self_; - array<1,8,varying_string<5> > dis; - array<1,7,char> touv; - sav_chaine s,s1; -array<0,390,byte> bufcha; - -matrix<1,6,0,23,byte> lettres; - -array<0,15,byte> palher; - -    tabint t_mot; +       err_mess, +       ind_mess, +       al_mess2; + +array<1, 8, integer> invt, +      nbrep, +      nbrepm, +      disc; +array<0, 4, integer> msg; +array<1, 7, integer> depl; +array<1, 8, varying_string<22> > inv; +array<1, 7, varying_string<23> > dep; +array<1, 21, varying_string<10> > act; +array<1, 5, varying_string<11> > self_; +array<1, 8, varying_string<5> > dis; +array<1, 7, char> touv; +sav_chaine s, s1; +array<0, 390, byte> bufcha; + +matrix<1, 6, 0, 23, byte> lettres; + +array<0, 15, byte> palher; + +tabint t_mot;  integer tay_tchar; -    tabind t_rec; -   file<ind> sauv_t; -   untyped_file fibyte; -   tab_mlieu v_lieu; -        tfxx l; -      tablint tbi; +tabind t_rec; +file<ind> sauv_t; +untyped_file fibyte; +tab_mlieu v_lieu; +tfxx l; +tablint tbi;  chariot c1, c2, c3; -   real addfix; -   pal_cga palsav; -   array<0,90,tabdb> tabpal; -   pal_cga palcga; -      array<0,14,pattern> tpt; +real addfix; +pal_cga palsav; +array<0, 90, tabdb> tabpal; +pal_cga palcga; +array<0, 14, pattern> tpt; @@ -400,86 +407,76 @@ chariot c1, c2, c3;  /* procedure box(c,Gd,xo,yo,xi,yi,patt:integer); external 'c:\mc\boite.com'; */ -void hirs() -{ -      const array<0,13,byte> tandy -           = {{113,80,90,14,63,6,50,56,2,3,6,7,0,0}}; -      const array<0,12,byte> herc -        = {{50,40,41,9,103,3,100,100,2,3,0,0,0}}; -       integer i, j; - -  switch (gd) { -    case cga : -     { -       graphcolormode; -       graphbackground(0); -       palette(1); -       res=1; -     } -     break; -    case ams : -     { -       hires; -       inline_((real)(0xb8)/6/0/        /*  =>  mov ax,6 */ -              0xcd/0x10);       /*  =>  int 16   */ -       port[0x3d9]=15; -       port[0x3df]=0; -       port[0x3dd]=15; -       res=2; -     } -     break; -    case ega : -     { -       inline_((real)(0xb8) / 14 / 0 /     /*  MOV AX, 14   ; mode video 14 = 640*200 16 couleurs */ -              0xcd / 0x10);        /*  INT 16  */ -       res=2; -     } -     break; -    case her : -     { -       port[0x3bf]=3; -       port[0x3b8]=2; -       for( i=0; i <= 12; i ++) -       { -         port[0x3b4]=i; -         port[0x3b5]=herc[i]; -       } -       inline_((real)(0xfc)/0xb9/0/0x80/0xb8/0/0xb0/0x8e/0xc0/0x31/0xff/0x31/0xc0/0xf3/0xab); -       port[0x3b8]=10; -       res=2; -     } -     break; -    case tan : -     { -       port[0x3d8]=0; -       port[0x3da]=3; -       port[0x3de]=0x14; -       for( i=0; i <= 13; i ++) -         { -           port[0x3d4]=i; -           port[0x3d5]=tandy[i]; -         } -       port[0x3da]=2; -       port[0x3de]=0; -       port[0x3d8]=port[0x3d8] | (11 & 0xef); -       port[0x3dd]=port[0x3dd] | 1; -       port[0x3df]=port[0x3df] | 0xc0; -       box(0,gd,0,0,640,200,255); -       res=1; -     } -     break; -  } +void hirs() { +	const array<0, 13, byte> tandy +	= {{113, 80, 90, 14, 63, 6, 50, 56, 2, 3, 6, 7, 0, 0}}; +	const array<0, 12, byte> herc +	= {{50, 40, 41, 9, 103, 3, 100, 100, 2, 3, 0, 0, 0}}; +	integer i, j; + +	switch (gd) { +	case cga : { +		graphcolormode; +		graphbackground(0); +		palette(1); +		res = 1; +	} +	break; +	case ams : { +		hires; +		inline_((real)(0xb8) / 6 / 0 /   /*  =>  mov ax,6 */ +		        0xcd / 0x10);     /*  =>  int 16   */ +		port[0x3d9] = 15; +		port[0x3df] = 0; +		port[0x3dd] = 15; +		res = 2; +	} +	break; +	case ega : { +		inline_((real)(0xb8) / 14 / 0 /     /*  MOV AX, 14   ; mode video 14 = 640*200 16 couleurs */ +		        0xcd / 0x10);        /*  INT 16  */ +		res = 2; +	} +	break; +	case her : { +		port[0x3bf] = 3; +		port[0x3b8] = 2; +		for (i = 0; i <= 12; i ++) { +			port[0x3b4] = i; +			port[0x3b5] = herc[i]; +		} +		inline_((real)(0xfc) / 0xb9 / 0 / 0x80 / 0xb8 / 0 / 0xb0 / 0x8e / 0xc0 / 0x31 / 0xff / 0x31 / 0xc0 / 0xf3 / 0xab); +		port[0x3b8] = 10; +		res = 2; +	} +	break; +	case tan : { +		port[0x3d8] = 0; +		port[0x3da] = 3; +		port[0x3de] = 0x14; +		for (i = 0; i <= 13; i ++) { +			port[0x3d4] = i; +			port[0x3d5] = tandy[i]; +		} +		port[0x3da] = 2; +		port[0x3de] = 0; +		port[0x3d8] = port[0x3d8] | (11 & 0xef); +		port[0x3dd] = port[0x3dd] | 1; +		port[0x3df] = port[0x3df] | 0xc0; +		box(0, gd, 0, 0, 640, 200, 255); +		res = 1; +	} +	break; +	}  }  /* procedure affput(Chx,Gd,x,y,coul,char:integer); external 'c:\mc\divaf.com'; */ -void affcar(integer gd,integer x,integer y,integer coul,integer char) -{ -  if (res==1)  affput(1,gd,((cardinal)x >> 1),y,coul,char); -           else affput(1,gd,x,y,coul,char); +void affcar(integer gd, integer x, integer y, integer coul, integer char) { +	if (res == 1)  affput(1, gd, ((cardinal)x >> 1), y, coul, char); +	else affput(1, gd, x, y, coul, char);  } -void putpix(integer gd,integer x,integer y,integer coul) -{ -  affput(0,gd,x,y,coul,0); +void putpix(integer gd, integer x, integer y, integer coul) { +	affput(0, gd, x, y, coul, 0);  }  | 
