{$ifndef unix}
{$A+,B-,D+,E+,F-,G+,I+,L+,N+,O+,P+,Q-,R-,S+,T-,V-,X+,Y+}
{$else}
{$B-,I+,S-,T-,X+}
{$endif}
unit menus1;

interface
uses
 types;

procedure Shipmenu(rasse,id,x,y,z,Location:longint);

implementation

uses
 tstring,
 utils,
 kb,
 evgraph,
{$ifndef unix}
 crt,
{$else}
 xcrt,
{$endif}
 grafik,
 data,
 maus2kb,
 schedule,
 listen,
 menus2,
 menus3,
 menus4,
 menus5,
 menus6;

procedure Shipmenu(rasse,id,x,y,z,Location:longint);
var
 schiff:tp_schiff;
 MoveData,
 ShipData:t_bdata;
 IsShip,
 IsOwnShip,
 IsOpponent,
 tIsShip,
 tIsOpponent,
 CanFight:boolean;
 Missionen:longint;
 Showthing,
 tshowthing:word;
 changemode:word;
 changeID:longint;

 PlanetNr,
 tPlanetNr,

 BaseNr,
 tBaseNr,

 shipnr,
 tshipnr,

 oshipnr,
 toshipnr:longint;

 planet,
 tplanet:tp_planet;

 base,
 tbase:tp_starbase;

 ship,
 oship,
 tship,
 toship:tp_schiff;

 redraw:byte;
 dx,dy,dz:integer;
 s:string;
 c:char;
 cs:byte;

 procedure transsb1(delta:integer);
 begin
   with schiff^ do with hulls[typnr] do begin
   transferspneutr(schiff,base^.neutr,delta);
   writeg(shipdata,#0'@'#0#16#0'C'#$c'1'#0'C'#$e'Neutronium :'#0'C'#$a+l2s(Neutr,7,false,false,false)+
		   #0'C'#$e'/'#0'C'#$a+strg(maxfuel)+spaces(4-digits(maxfuel))+#27#26#0'C'#$a+
		   l2s(base^.neutr,8,false,false,false)+#0'C'#$c#13#10);
   writeg(shipdata,#0'@'#0#26#0'C'#$e' Masse      :'#0'C'#$a+
		   l2s(sgewicht(schiff),7,false,false,false)+
		   #0'C'#$e'/'#0'C'#$a+l2s(MaxMasse,digits(maxmasse),false,false,false));
  end;
 end;

 procedure transsb2(delta:integer);
 begin
   with schiff^ do with hulls[typnr] do begin
   transfersp(schiff,molyb,base^.molyb,delta);
   writeg(shipdata,#0'@'#0#17#0'C'#$c'2'#0'C'#$e'Molybdenium:'#0'C'#$a+l2s(molyb,7,false,false,false)+
	      '     '#27#26+#0'C'#$a+l2s(base^.molyb,8,false,false,false));
   writeg(shipdata,#0'@'#0#26#0'C'#$e' Masse      :'#0'C'#$a+
		   l2s(sgewicht(schiff),7,false,false,false)+
		   #0'C'#$e'/'#0'C'#$a+l2s(MaxMasse,digits(maxmasse),false,false,false));
  end;
 end;

 procedure transsb3(delta:integer);
 begin
   with schiff^ do with hulls[typnr] do begin
   transfersp(schiff,dura,base^.dura,delta);
   writeg(shipdata,#0'@'#0#18#0'C'#$c'3'#0'C'#$e'Duranium   :'#0'C'#$a+l2s(dura,7,false,false,false)+
	      '     '#27#26+#0'C'#$a+l2s(base^.dura,8,false,false,false));
   writeg(shipdata,#0'@'#0#26#0'C'#$e' Masse      :'#0'C'#$a+
		   l2s(sgewicht(schiff),7,false,false,false)+
		   #0'C'#$e'/'#0'C'#$a+l2s(MaxMasse,digits(maxmasse),false,false,false));
  end;
 end;

 procedure transsb4(delta:integer);
 begin
   with schiff^ do with hulls[typnr] do begin
   transfersp(schiff,trit,base^.trit,delta);
   writeg(shipdata,#0'@'#0#19#0'C'#$c'4'#0'C'#$e'Tritanium  :'#0'C'#$a+l2s(trit,7,false,false,false)+
	      '     '#27#26+#0'C'#$a+l2s(base^.trit,8,false,false,false)+#0'C'#$7'_');
   writeg(shipdata,#0'@'#0#26#0'C'#$e' Masse      :'#0'C'#$a+
		   l2s(sgewicht(schiff),7,false,false,false)+
		   #0'C'#$e'/'#0'C'#$a+l2s(MaxMasse,digits(maxmasse),false,false,false));
  end;
 end;

 procedure transsb5(delta:integer);
 begin
   with schiff^ do with hulls[typnr] do begin
   transfersbcols(schiff,base^.crew,delta);
   writeg(shipdata,#0'@'#0#20#0'C'#$c'5'#0'C'#$e'Kolonisten :'#0'C'#$a+l2s(colons,7,false,false,false)+
	      '     '#27#26+#0'C'#$a+l2s(base^.crew,8,false,false,false));
   writeg(shipdata,#0'@'#0#26#0'C'#$e' Masse      :'#0'C'#$a+
		   l2s(sgewicht(schiff),7,false,false,false)+
		   #0'C'#$e'/'#0'C'#$a+l2s(MaxMasse,digits(maxmasse),false,false,false));
  end;
 end;

 procedure transsb6(delta:integer);
 begin
   with schiff^ do with hulls[typnr] do begin
   transfersp(schiff,supplies,base^.supplies,delta);
   writeg(shipdata,#0'@'#0#21#0'C'#$c'6'#0'C'#$e'Waren      :'#0'C'#$a+l2s(supplies,7,false,false,false)+
	      '     '#27#26+#0'C'#$a+l2s(base^.supplies,8,false,false,false));
   writeg(shipdata,#0'@'#0#26#0'C'#$e' Masse      :'#0'C'#$a+
		   l2s(sgewicht(schiff),7,false,false,false)+
		   #0'C'#$e'/'#0'C'#$a+l2s(MaxMasse,digits(maxmasse),false,false,false));
  end;
 end;

 procedure transsb7(delta:integer);
 begin
   with schiff^ do with hulls[typnr] do begin
   transferspcreds(schiff,base^.creds,delta);
   writeg(shipdata,#0'@'#0#22#0'C'#$c'7'#0'C'#$e'Credits    :'#0'C'#$a+l2s(cred,7,false,false,false)+
	      '     '#27#26+#0'C'#$a+l2s(base^.creds,8,false,false,false));
  end;
 end;

 procedure transsp1(delta:integer);
 begin
   with schiff^ do with hulls[typnr] do begin
   transferspneutr(schiff,planet^.minedneutr,delta);
   writeg(shipdata,#0'@'#0#16#0'C'#$c'1'#0'C'#$e'Neutronium :'#0'C'#$a+l2s(Neutr,7,false,false,false)+
		   #0'C'#$e'/'#0'C'#$a+strg(maxfuel)+spaces(4-digits(maxfuel))+#27#26#0'C'#$a+
		   l2s(planet^.minedneutr,8,false,false,false));
   writeg(shipdata,#0'@'#0#26#0'C'#$e' Masse      :'#0'C'#$a+
		   l2s(sgewicht(schiff),7,false,false,false)+
		   #0'C'#$e'/'#0'C'#$a+l2s(MaxMasse,digits(maxmasse),false,false,false));
  end;
 end;

 procedure transsp2(delta:integer);
 begin
   with schiff^ do with hulls[typnr] do begin
   transfersp(schiff,molyb,planet^.minedmolyb,delta);
   writeg(shipdata,#0'@'#0#17#0'C'#$c'2'#0'C'#$e'Molybdenium:'#0'C'#$a+l2s(molyb,7,false,false,false)+
	      '     '#27#26+#0'C'#$a+l2s(planet^.minedmolyb,8,false,false,false));
   writeg(shipdata,#0'@'#0#26#0'C'#$e' Masse      :'#0'C'#$a+
		   l2s(sgewicht(schiff),7,false,false,false)+
		   #0'C'#$e'/'#0'C'#$a+l2s(MaxMasse,digits(maxmasse),false,false,false));
  end;
 end;

 procedure transsp3(delta:integer);
 begin
   with schiff^ do with hulls[typnr] do begin
   transfersp(schiff,dura,planet^.mineddura,delta);
   writeg(shipdata,#0'@'#0#18#0'C'#$c'3'#0'C'#$e'Duranium   :'#0'C'#$a+l2s(dura,7,false,false,false)+
	      '     '#27#26+#0'C'#$a+l2s(planet^.mineddura,8,false,false,false));
   writeg(shipdata,#0'@'#0#26#0'C'#$e' Masse      :'#0'C'#$a+
		   l2s(sgewicht(schiff),7,false,false,false)+
		   #0'C'#$e'/'#0'C'#$a+l2s(MaxMasse,digits(maxmasse),false,false,false));
  end;
 end;

 procedure transsp4(delta:integer);
 begin
   with schiff^ do with hulls[typnr] do begin
   transfersp(schiff,trit,planet^.minedtrit,delta);
   writeg(shipdata,#0'@'#0#19#0'C'#$c'4'#0'C'#$e'Tritanium  :'#0'C'#$a+l2s(trit,7,false,false,false)+
	      '     '#27#26+#0'C'#$a+l2s(planet^.minedtrit,8,false,false,false)+#0'C'#$7'_');
   writeg(shipdata,#0'@'#0#26#0'C'#$e' Masse      :'#0'C'#$a+
		   l2s(sgewicht(schiff),7,false,false,false)+
		   #0'C'#$e'/'#0'C'#$a+l2s(MaxMasse,digits(maxmasse),false,false,false));
  end;
 end;

 procedure transsp5(delta:longint);
 begin
   with schiff^ do with hulls[typnr] do begin
   transferspcols(schiff,planet^.raceanz,delta);
   writeg(shipdata,#0'@'#0#20#0'C'#$c'5'#0'C'#$e'Kolonisten :'#0'C'#$a+l2s(colons,7,false,false,false)+
	      '     '#27#26+#0'C'#$a+l2s(planet^.raceanz,8,false,false,false));
   writeg(shipdata,#0'@'#0#26#0'C'#$e' Masse      :'#0'C'#$a+
		   l2s(sgewicht(schiff),7,false,false,false)+
		   #0'C'#$e'/'#0'C'#$a+l2s(MaxMasse,digits(maxmasse),false,false,false));
  end;
 end;

 procedure transsp6(delta:integer);
 begin
   with schiff^ do with hulls[typnr] do begin
   transfersp(schiff,supplies,planet^.supplies,delta);
   writeg(shipdata,#0'@'#0#21#0'C'#$c'6'#0'C'#$e'Waren      :'#0'C'#$a+l2s(supplies,7,false,false,false)+
	      '     '#27#26+#0'C'#$a+l2s(planet^.supplies,8,false,false,false));
   writeg(shipdata,#0'@'#0#26#0'C'#$e' Masse      :'#0'C'#$a+
		   l2s(sgewicht(schiff),7,false,false,false)+
		   #0'C'#$e'/'#0'C'#$a+l2s(MaxMasse,digits(maxmasse),false,false,false));
  end;
 end;

 procedure transsp7(delta:integer);
 begin
   with schiff^ do with hulls[typnr] do begin
   transferspcreds(schiff,planet^.creds,delta);
   writeg(shipdata,#0'@'#0#22#0'C'#$c'7'#0'C'#$e'Credits    :'#0'C'#$a+l2s(cred,7,false,false,false)+
	      '     '#27#26+#0'C'#$a+l2s(planet^.creds,8,false,false,false));
  end;
 end;

 procedure transsb8(delta:integer);
 begin
   with schiff^ do with hulls[typnr] do begin
   transfersbfighters(schiff,fighter,base^.fighter,delta);
   writeg(shipdata,#0'@'#0#23#0'C'#$c'8'#0'C'#$e'J„ger      :'#0'C'#$a+l2s(fighter,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(base^.fighter,8,false,false,false)+#0'C'#$7'_');
   writeg(shipdata,#0'@'#0#26#0'C'#$e' Masse      :'#0'C'#$a+
		   l2s(sgewicht(schiff),7,false,false,false)+
		   #0'C'#$e'/'#0'C'#$a+l2s(MaxMasse,digits(maxmasse),false,false,false));
  end;
 end;

 procedure transsp90(var l1:array of sint;var l2:array of sint;t:byte);
 var
  tdata:t_bdata;
  i:word;
  c:char;cs:byte;
 begin
  initb(tdata,12,242,40,11,15,0);
   repeat
   redraw:=0;
   window(10,240,40*8+13,160+259);
   writeg(tdata,#0'C'#$8f#12);
   repeat
    if t=0 then begin
     writeg(tdata,#0'C'#$8f#0'@'#0#0'Torpedos:'#13#10+'Typ:                   Schiff:  Basis:'#13#10);
     for i:=1 to 9 do writeg(tdata,#0'C'#$8c+char(i+48)+#0'C'#$8e+nstring(torpname(i),20)+' '#0'C'#$8a+
	w2s(l1[i-1],7,false,false)+#27#26#0'C'#$8a+l2s(l2[i-1],8,false,false,false)+#13#10);
    end else begin
     writeg(tdata,#0'C'#$8f#0'@'#0#0'Minen:'#13#10+'Typ:                   Schiff:  Basis:'#13#10);
     for i:=1 to 9 do writeg(tdata,#0'C'#$8c+char(i+48)+#0'C'#$8e+nstring(minename(i),20)+' '#0'C'#$8a+
	w2s(l1[i-1],7,false,false)+#27#26#0'C'#$8a+l2s(l2[i-1],8,false,false,false)+#13#10);
    end;
    c:=upcase(kbreadkey);
    if c=#0 then cs:=byte(kbreadkey) else cs:=kbscancode;
    case c of
     #0:case cs of
      0,255:mreset;
      $3b..$43:transfersbtb(schiff,l1[cs-$3b],l2[cs-$3b],-1);
      $54..$5c:transfersbtb(schiff,l1[cs-$54],l2[cs-$54],-100);
      $68..$70:transfersbtb(schiff,l1[cs-$68],l2[cs-$68],-100);
      $78..$80:transfersbtb(schiff,l1[cs-$78],l2[cs-$78],100);
      $8:transfersbtb(schiff,l1[6],l2[6],100);
      $5e..$66:begin
       transfersbtb(schiff,l1[cs-$5e],l2[cs-$5e],
		  eingabenr(25,16+cs-$5e,-10000,0,' '#26'Transfer'#26' '));
       redraw:=2;
      end;
     end;
     '1'..'9':transfersbtb(schiff,l1[byte(c)-49],l2[byte(c)-49],1);
     '!','"','','$','%','&','/','(',')','=','^','@','#','*':case cs of
      2..10:transfersbtb(schiff,l1[cs-2],l2[cs-2],100);
     end;
     #13,#27,' ':exit;
    end;
    with schiff^ do with hulls[typnr] do writeg(shipdata,#0'@'#0#26#0'C'#$e' Masse      :'#0'C'#$a+
		    l2s(sgewicht(schiff),7,false,false,false)+
		    #0'C'#$e'/'#0'C'#$a+
	    l2s(MaxMasse,digits(maxmasse),false,false,false)+#0'C'#$e#13#10);
   until redraw>0;
  until false;
 end;

 procedure transss1(delta:integer);
 begin
   transferssneutr(schiff,ship,delta);
   with schiff^ do with hulls[typnr] do begin
   writeg(shipdata,#0'@'#0#16#0'C'#$c'1'#0'C'#$e'Neutronium :'#0'C'#$a+l2s(Neutr,7,false,false,false)+#0'C'#$e'/'#0'C'#$a+
		  strg(maxfuel)+spaces(4-digits(maxfuel))+#27#26#0'C'#$a+l2s(ship^.neutr,7,false,false,false)+
		  #0'C'#$e'/'#0'C'#$a+strg(hulls[ship^.typnr].maxfuel)+#0'C'#$e);
   writeg(shipdata,#0'@'#0#26' Masse      :'#0'C'#$a+
		  l2s(sgewicht(schiff),7,false,false,false)
		  +#0'C'#$e'/'#0'C'#$a+strg(MaxMasse)+spaces(6-digits(maxmasse))
		  +#0'C'#$a+l2s(sgewicht(ship),7,false,false,false)
		  +#0'C'#$e'/'#0'C'#$a+strg(hulls[ship^.typnr].maxmasse));
  end;
 end;

 procedure transss2(delta:integer);
 begin
   transferss(schiff,ship,schiff^.molyb,ship^.molyb,delta);
   with schiff^ do with hulls[typnr] do begin
   writeg(shipdata,#0'@'#0#17#0'C'#$c'2'#0'C'#$e'Molybdenium:'#0'C'#$a+l2s(molyb,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(ship^.molyb,7,false,false,false)+#0'C'#$e);
   writeg(shipdata,#0'@'#0#26' Masse      :'#0'C'#$a+
		  l2s(sgewicht(schiff),7,false,false,false)
		  +#0'C'#$e'/'#0'C'#$a+strg(MaxMasse)+spaces(6-digits(maxmasse))
		  +#0'C'#$a+l2s(sgewicht(ship),7,false,false,false)
		  +#0'C'#$e'/'#0'C'#$a+strg(hulls[ship^.typnr].maxmasse));
  end;
 end;

 procedure transss3(delta:integer);
 begin
   transferss(schiff,ship,schiff^.dura,ship^.dura,delta);
   with schiff^ do with hulls[typnr] do begin
   writeg(shipdata,#0'@'#0#18#0'C'#$c'3'#0'C'#$e'Duranium   :'#0'C'#$a+l2s(dura,7,false,false,false)+
		   '     '#27#26#0'C'#$a+l2s(ship^.dura,7,false,false,false)+#0'C'#$e);
   writeg(shipdata,#0'@'#0#26' Masse      :'#0'C'#$a+
		  l2s(sgewicht(schiff),7,false,false,false)
		  +#0'C'#$e'/'#0'C'#$a+strg(MaxMasse)+spaces(6-digits(maxmasse))
		  +#0'C'#$a+l2s(sgewicht(ship),7,false,false,false)
		  +#0'C'#$e'/'#0'C'#$a+strg(hulls[ship^.typnr].maxmasse));
  end;
 end;

 procedure transss4(delta:integer);
 begin
   transferss(schiff,ship,schiff^.trit,ship^.trit,delta);
   with schiff^ do with hulls[typnr] do begin
   writeg(shipdata,#0'@'#0#19#0'C'#$c'4'#0'C'#$e'Tritanium  :'#0'C'#$a+l2s(trit,7,false,false,false)+
		  '     '#27#26#0'C'#$a+l2s(ship^.trit,7,false,false,false)+#0'C'#$7'_'#0'C'#$e);
   writeg(shipdata,#0'@'#0#26' Masse      :'#0'C'#$a+
		  l2s(sgewicht(schiff),7,false,false,false)
		  +#0'C'#$e'/'#0'C'#$a+strg(MaxMasse)+spaces(6-digits(maxmasse))
		  +#0'C'#$a+l2s(sgewicht(ship),7,false,false,false)
		  +#0'C'#$e'/'#0'C'#$a+strg(hulls[ship^.typnr].maxmasse));
  end;
 end;

 procedure transss5(delta:longint);
 begin
   transfersscols(schiff,ship,delta);
   with schiff^ do with hulls[typnr] do begin
   writeg(shipdata,#0'@'#0#20#0'C'#$c'5'#0'C'#$e'Kolonisten :'#0'C'#$a+l2s(colons,7,false,false,false)+
		  '     '#27#26#0'C'#$a+l2s(ship^.colons,7,false,false,false)+#0'C'#$e);
   writeg(shipdata,#0'@'#0#26' Masse      :'#0'C'#$a+
		  l2s(sgewicht(schiff),7,false,false,false)
		  +#0'C'#$e'/'#0'C'#$a+strg(MaxMasse)+spaces(6-digits(maxmasse))
		  +#0'C'#$a+l2s(sgewicht(ship),7,false,false,false)
		  +#0'C'#$e'/'#0'C'#$a+strg(hulls[ship^.typnr].maxmasse));
  end;
 end;

 procedure transss6(delta:integer);
 begin
   transferss(schiff,ship,schiff^.supplies,ship^.supplies,delta);
   with schiff^ do with hulls[typnr] do begin
   writeg(shipdata,#0'@'#0#21#0'C'#$c'6'#0'C'#$e'Waren      :'#0'C'#$a+l2s(supplies,7,false,false,false)+
		   '     '#27#26#0'C'#$a+l2s(ship^.supplies,7,false,false,false)+#0'C'#$e);
   writeg(shipdata,#0'@'#0#26' Masse      :'#0'C'#$a+
		  l2s(sgewicht(schiff),7,false,false,false)
		  +#0'C'#$e'/'#0'C'#$a+strg(MaxMasse)+spaces(6-digits(maxmasse))
		  +#0'C'#$a+l2s(sgewicht(ship),7,false,false,false)
		  +#0'C'#$e'/'#0'C'#$a+strg(hulls[ship^.typnr].maxmasse));
  end;
 end;

 procedure transss7(delta:integer);
 begin
   transfersscreds(schiff,ship,delta);
   with schiff^ do with hulls[typnr] do begin
   writeg(shipdata,#0'@'#0#22#0'C'#$c'7'#0'C'#$e'Credits    :'#0'C'#$a+l2s(cred,7,false,false,false)+
		   '     '#27#26#0'C'#$a+l2s(ship^.cred,7,false,false,false));
  end;
 end;

 procedure tastatur;

  Procedure MissionSelect;
  var
   mdata:t_bdata;
   m1,
   m2:longint;
   i:word;
   c:char;
   rd:boolean;
  begin
    with schiff^ do repeat
    initb(mdata,12,12+32,52,19,$f,8);
    window(10,10+32,381+48,317+32);
    writeg(mdata,#12'Mission w„hlen:');
    for i:=0 to 17 do begin
     if (missionen and (longint(1) shl i)=0)
     then writeg(mdata,#13#10' '#0'C'#$87+az10[i+1]+':'+nstring(missions[i],22))
     else writeg(mdata,#13#10' '#0'C'#$8c+az10[i+1]+':'#0'C'#$8e+nstring(missions[i],22));
     if (i<14)and(missionen and (longint(1) shl (i+18))=0)
     or (i>=14)and(PlanetNr=-1)
     then writeg(mdata,'  '#0'C'#$87+az10[i+19]+':'+nstring(missions[i+18],22))
     else writeg(mdata,'  '#0'C'#$8c+az10[i+19]+':'#0'C'#$8e+nstring(missions[i+18],22));
    end;
    repeat
     c:=upcase(kbreadkey);
     case c of
      #0:begin;kbreadkey;mreset;end;
      '0'..'9','A'..'Z':begin
       m1:=pos(c,az10)-1;
       if missionen and (longint(1) shl m1)<>0 then case m1 of
	0,1,2,3,4,5,6,11,14,22,27,28:begin
	 if isownship then begin
	  mission1:=m1;
	  mission2:=0;
	 end else begin
	  byte(mission3):=m1;
	  mission4:=0;
	 end;
	 if m1 in[3,4,13,14,15,16,17,18,19,20,21,23,
		  24,26,28,29,30,31,32,33,34,35] then warp:=0;
	 exit;
	end;
	23,24,29,30:begin
	 if isownship then begin
	  mission1:=m1;
	  mission2:=BaseNr;
	 end else begin
	  byte(mission3):=m1;
	  mission4:=BaseNr;
	 end;
	 warp:=0;
	 exit;
	end;
	15,16,17,18,19,20,21,31,32,33,34,35:begin
	 if isownship then begin
	  mission1:=m1;
	  mission2:=planetNr;
	 end else begin
	  byte(mission3):=m1;
	  mission4:=planetNr;
	 end;
	 warp:=0;
	 exit;
	end;
	13:begin
	 m2:=shiplist(rasse,posx,posy,posz,5,-3,'Zu unterst�tzendes Schiff:',0);
	 if m2<>-1 then begin
	  if isownship then begin
	   mission1:=m1;
	   mission2:=planetNr;
	  end else begin
	   byte(mission3):=m1;
	   mission4:=planetNr;
	  end;
	  exit;
	 end;
	 rd:=true;
	end;
	8:begin
	 m2:=shiplist(rasse,posx,posy,posz,0,schiff^.id_nr,'Ziel:',0);
	 if m2<>-1 then begin
	  toship:=getship(m2);
	  targetx:=toship^.posx;
	  targety:=toship^.posy;
	  targetz:=toship^.posz;
	  if isownship then begin
	   mission1:=m1;
	   mission2:=m2;
	  end else begin
	   byte(mission3):=m1;
	   mission4:=m2;
	  end;
	  if toship^.owner=rasse then begin
	   tshowthing:=3;
	   tshipnr:=m2;
	  end else begin
	   tshowthing:=4;
	   toshipnr:=m2;
	  end;
	  exit;
	 end;
	 rd:=true;
	end;
	7,9,10,12:begin
	 m2:=shiplist(rasse,posx,posy,posz,8,-3,'Ziel:',0);
	 if m2<>-1 then begin
	  toship:=getship(m2);
	  targetx:=toship^.posx;
	  targety:=toship^.posy;
	  targetz:=toship^.posz;
	  if isownship then begin
	   mission1:=m1;
	   mission2:=m2;
	  end else begin
	   byte(mission3):=m1;
	   mission4:=m2;
	  end;
	  tshowthing:=4;
	  toshipnr:=m2;
	  exit;
	 end;
	 rd:=true;
	end;
	26:if isownship then begin
	 m2:=-1;
	 for i:=0 to 31 do if firstship(i,posx,posy,posz,5)<>-1
	 then m2:=m2 and not(longint(1) shl i);
	 if (PlanetNr<>-1)and(planet^.raceanz>0)then m2:=m2 and not(longint(1) shl planet^.racetyp);
	 m2:=getrace(rasse,m2,'šbergeben an:');
	 if m2<>32 then begin
	  mission1:=m1;
	  mission2:=m2;
	  if byte(mission3 shr 16)=m2
	  then byte(mission3):=byte(mission3 shr 8)
	  else byte(mission3):=0;
	  exit;
	 end;
	 rd:=true;
	end else begin
	 byte(mission3):=26;
	 mission4:=owner;
	 exit;
	end;
	25:if isownship then begin
	 m2:=getrace(rasse,not usedrassen,'Kommando šbergeben an:');
	 if m2<>32 then begin
	  mission1:=m1;
	  mission2:=m2;
	  if byte(mission3 shr 16)=m2
	  then byte(mission3):=byte(mission3 shr 8)
	  else byte(mission3):=0;
	  exit;
	 end;
	 rd:=true;
	end else begin
	 byte(mission3):=26;
	 mission4:=owner;
	 exit;
	end;
       end else beep;
      end;
      #27:exit;
     end;
    until rd;
   until false;
  end;

  procedure Bestuckung;
  var
   o:t_bdata;
   i,
   torp:word;
  begin
   with schiff^ do with hulls[typnr] do begin
    initb(o,8,8,78,29,8,15);
    window(6,6,78*8+9,29*16+9);
    writeg(o,#0'C'#$f#12'         Schiff      :'#0'C'#$e+
		    schiffname+#0'C'#$f#13#10);
    writeg(o,'         Status      :');
    if damage=0 then writeg(o,#0'C'#$a) else writeg(o,#0'C'#$c);
    writeg(o,w2s(damage div 10,3,false,false)+'.'+strg(damage mod 10)+'% besch„digt'#13#10);
    writeg(o,#0'C'#$f'         Schildst„rke:'#0'C'#$a+w2s(schild,4,false,false)+
	 #13#10#0'C'#$f'         Rumpfst„rke :'#0'C'#$a+w2s(huelle,4,false,false)+#0'C'#$f#13#10#10);
    showp(8,8,bild);

    writeg(o,'H�lle        :'#0'C'#$e+nstring(name,20)+':'+
	 ' max:'#0'C'#$a'   1'#0'C'#$e+
	 ' Jetzt:'#0'C'#$a'   1'#0'C'#$e+#0'C'#$e+
	 ' Masse:'#0'C'#$a+w2s(Masse,4,false,false)+#0'C'#$f#13#10);
    writeg(o,' Antrieb     :'#0'C'#$e+nstring(Engname(engtyp),20)+':'+
	 ' max:'#0'C'#$a+w2s(enganz,4,false,false)+#0'C'#$e+
	 ' Jetzt:'#0'C'#$a+w2s(enganz,4,false,false)+#0'C'#$e+
	 ' Masse:'#0'C'#$a+w2s(enganz*egewicht(engtyp),4,false,false)+#0'C'#$f#13#10);
    writeg(o,' Waffe       :'#0'C'#$e+nstring(Beamname(Beamtyp),20)+':'+
	 ' max:'#0'C'#$a+w2s(maxbeams,4,false,false)+#0'C'#$e+
	 ' Jetzt:'#0'C'#$a+w2s(beams,4,false,false)+#0'C'#$e+
	 ' Masse:'#0'C'#$a+w2s(beams*bgewicht,4,false,false)+#0'C'#$f#13#10);
    writeg(o,' Torpedorohre:'#0'C'#$e+nstring(torprname(torprohretyp),20)+':'+
	 ' max:'#0'C'#$a+w2s(maxtorps,4,false,false)+#0'C'#$e+
	 ' Jetzt:'#0'C'#$a+w2s(torprohre,4,false,false)+#0'C'#$e+
	 ' Masse:'#0'C'#$a+w2s(torprohre*tgewicht(torprohretyp),4,false,false)+#0'C'#$f#13#10);
    writeg(o,' J„ger-Startrampen                '#0'C'#$e':'+
	 ' max:'#0'C'#$a+w2s(maxbays,4,false,false)+#0'C'#$e+
	 ' Jetzt:'#0'C'#$a+w2s(bays,4,false,false)+#0'C'#$e+
	 ' Masse:'#0'C'#$a+w2s(bays*baygewicht,4,false,false)+#0'C'#$f#13#10);
    writeg(o,' Minenwerfer                      '#0'C'#$e':'+
	 ' max:'#0'C'#$a+w2s(maxmines,4,false,false)+#0'C'#$e+
	 ' Jetzt:'#0'C'#$a+w2s(minenleger,4,false,false)+#0'C'#$e+
	 ' Masse:'#0'C'#$a+w2s(minenleger*mlegergewicht,4,false,false)+#0'C'#$f#13#10);
    writeg(o,' Crew'+spaces(22-digits(mincrew))+#0'C'#$e'(Min.:'#0'C'#$a+strg(mincrew)+#0'C'#$e'):'+
	 ' max:'#0'C'#$a+w2s(maxcrew,4,false,false)+#0'C'#$e+
	 ' Jetzt:'#0'C'#$a+w2s(crew,4,false,false)+#0'C'#$e+
	 ' Masse:'#0'C'#$a+w2s((crew+99)div 100,4,false,false)+#0'C'#$e#13#10);
    writeg(o,#0'X'#55'Gesamt:'#0'C'#$a+w2s(Masse+enganz*egewicht(engtyp)+beams*bgewicht+
	 torprohre*tgewicht(torprohretyp)+bays*baygewicht+minenleger*mlegergewicht+
	 (crew+99)div 100,4,false,false));
    writeg(o,#10#0'X'#54#0'C'#$e'Maximal:'#0'C'#$a+w2s(maxmasse,4,false,false)+#0'C'#$f);

    writeg(o,#0'@'#13#16'Verbrauchskurve Antrieb');
    writeg(o,#0'@'#13#20'Schadenskurve Waffen');
    displayfuel(10,248,engtyp);
    displaybeam(10,312,beamtyp);
    torp:=0;
    for i:=1 to 9 do if torps[i]<>0 then torp:=i;
    if torp<>0 then begin
     showph(300,372,torp+189);
     displaytorp(10,376,torp);
     writeg(o,#0'@'#13#24'Schadenskurve Torpedos');
    end else begin
     if torprohre>0 then writeg(o,#0'@'#13#24'Torpedorohre:');
     showph(64,386,torprohretyp+179);
    end;
    if torprohre>0 then begin
     writeg(o,#0'@'#13#25#0'C'#$a+strg(torprohre)+
	     #0'C'#$e' Torpedos in '#0'C'#$a'25'#0'C'#$e' Runden');
    end;
    if bays>0 then begin
     if fighter>0 then showph(24,434,210+rasse);
     showph(64,434,199);
     writeg(o,#0'@'#13#27#0'C'#$f'J„ger-Startrampen:');
     writeg(o,#0'@'#13#28#0'C'#$a+strg(bays)+
	     #0'C'#$e' J„ger starten in '#0'C'#$a'25'#0'C'#$e' Runden');
    end;
    if minenleger>0 then begin
     for i:=1 to 9 do if minen[i]<>0 then torp:=i;
     if torp<>0 then begin
      showph(384,401,199+torp);
      showph(384,434,189);
      writeg(o,#0'@'#53#27#0'C'#$f'Minenwerfer:');
      writeg(o,#0'@'#53#28#0'C'#$a+strg(minenleger*2*(100+10*mines[torp].techlvl))+
	      #0'C'#$e' Minen pro Runde');
     end else begin
      showph(384,434,189);
      writeg(o,#0'@'#53#27#0'C'#$f'Minenwerfer:');
      writeg(o,#0'@'#53#28#0'C'#$a+strg(minenleger*2)+
	      #0'C'#$e' Minenpakete pro Runde');
     end;
    end;
    redraw:=3;
    kbreset;
    if kbreadkey=#0 then kbreadkey;
    mreset;
   end;
  end;


 begin { tastatur }
   with schiff^ do repeat
   DisplayStars(rasse,x,y,z,targetx,targety,targetz);
   begin
    tPlanetNr:=PlanID(targetx,targety,targetz);
    tplanet:=getplan(tplanetnr);
    tBaseNr:=BaseID(targetx,targety,targetz);
    tbase:=getbase(tBaseNr);
    if (tshowthing<>3)
    or(tship=nil)
    or(tship^.posx<>targetx)
    or(tship^.posy<>targety)
    or(tship^.posz<>targetz)
    then begin
     tshipnr:=firstship(rasse,targetx,targety,targetz,5);
     if tshipnr=id_nr then tshipnr:=nextship(tshipnr,rasse,targetx,targety,targetz,5);
     if tshipnr=id_nr then tshipnr:=-1;
     tship:=getship(tshipnr);
    end;
    if (tshowthing<>4)
    or(toship=nil)
    or(toship^.posx<>targetx)
    or(toship^.posy<>targety)
    or(toship^.posz<>targetz)
    then begin
     toshipnr:=firstship(rasse,targetx,targety,targetz,7);
     if toshipnr=id_nr then tshipnr:=nextship(toshipnr,rasse,targetx,targety,targetz,7);
     if toshipnr=id_nr then toshipnr:=-1;
     toship:=getship(toshipnr);
    end;
    tisopponent:=(toshipnr<>-1)or(tbasenr<>-1)and(tbase^.owner<>rasse);
    tIsShip:=tshipnr<>-1;
   end;
   writeg(movedata,#12#0'C'#$f'Auf: '#0'C'#$e+l2s(posx,5,true,false,false)+'X'+
		 l2s(posy,5,true,false,false)+'Y'+l2s(posz,5,true,false,false)+'Z'#0'C'#$7#13#10);
   if PlanetNr<>-1 then begin
    if showthing=0 then showthing:=1;
    if showthing=1 then writeg(movedata,#0'C'#$e);
    writeg(movedata,'<P>lanet '#0'C'#$7);
   end;
   if BaseNr<>-1 then begin
    if showthing=0 then showthing:=2;
    if showthing=2 then writeg(movedata,#0'C'#$e);
    writeg(movedata,'<B>asis '#0'C'#$7);
   end;
   if isship then begin
    if showthing=0 then showthing:=3;
    if showthing=3 then writeg(movedata,#0'C'#$e);
    writeg(movedata,'<S>chiff '#0'C'#$7);
   end;
   if Oshipnr<>-1 then begin
    if showthing=0 then showthing:=4;
    if showthing=4 then writeg(movedata,#0'C'#$c);
    writeg(movedata,'<G>egner '#0'C'#$7);
   end;
   case showthing of
    1:begin
     writeg(movedata,#13#10#0'C'#$c'X:'#0'C'#$e+planet^.name+#13#10);
     with ship^
     do if (basenr<>-1) then begin
      writeg(movedata,rassen[base^.owner]+#13#10);
     end else if planet^.racetyp=rasse then begin
      writeg(movedata,rassen[planet^.racetyp]+#13#10);
     end else writeg(movedata,#10);
    end;
    2:writeg(movedata,#13#10#0'C'#$c'X:'#0'C'#$e+base^.name+#13#10+
		      rassen[base^.owner]+#13#10);
    3:writeg(movedata,#13#10#0'C'#$c'X:'#0'C'#$e+ship^.schiffname+#13#10#10);
    4:writeg(movedata,#13#10#0'C'#$c'X:'#0'C'#$e+oship^.schiffname+#13#10+
		      rassen[oship^.owner]+#13#10);
   else
    writeg(movedata,#13#10#10#10);
   end;
   writeg(movedata,#0'C'#$c'N'#0'C'#$f'ach:'#0'C'#$e+l2s(targetx,5,true,false,false)+'X'+
		 l2s(targety,5,true,false,false)+'Y'+l2s(targetz,5,true,false,false)+'Z');
   if mlock then writeg(movedata,'  '#0'C'#$40'MLOCK');
   writeg(movedata,#0'C'#$7#13#10);
   if tPlanetNr<>-1 then begin
    if tshowthing=0 then begin
     tshowthing:=1;
     sound(3000);kbdelay(250000);nosound;mreset;kbreset;
    end;
    if tshowthing=1 then writeg(movedata,#0'C'#$e);
    writeg(movedata,'<P>lanet '#0'C'#$7);
   end else if tshowthing=1 then tshowthing:=0;
   if tBaseNr<>-1 then begin
    if tshowthing=0 then begin
     tshowthing:=2;
     sound(3000);kbdelay(250000);nosound;mreset;kbreset;
    end;
    if tshowthing=2 then writeg(movedata,#0'C'#$e);
    writeg(movedata,'<B>asis '#0'C'#$7);
   end else if tshowthing=2 then tshowthing:=0;
   if tisship then begin
    if tshowthing=0 then begin
     tshowthing:=3;
     sound(2000);kbdelay(250000);nosound;mreset;kbreset;
    end;
    if tshowthing=3 then begin
     writeg(movedata,#0'C'#$e);
    end;
    writeg(movedata,'<S>chiffe '#0'C'#$7);
   end else if tshowthing=3 then tshowthing:=0;
   if toShipNr<>-1 then begin
    if tshowthing=0 then begin
     tshowthing:=4;
     sound(2000);kbdelay(250000);nosound;mreset;kbreset;
    end;
    if tshowthing=4 then writeg(movedata,#0'C'#$c);
    writeg(movedata,'<G>egner '#0'C'#$7);
   end else if tshowthing=4 then tshowthing:=0;
   dx:=dist(posx,posy,posz,targetx,targety,targetz);
   dy:=fueluse(dx,sgewicht(schiff),warp,engtyp);
   case tshowthing of
    1:begin
     writeg(movedata,#13#10#0'C'#$c'Y:'#0'C'#$e+tplanet^.name+#13#10);
     with tship^
     do if (tbasenr<>-1) then begin
      writeg(movedata,rassen[tbase^.owner]+#13#10);
     end else if tplanet^.racetyp=rasse then begin
      writeg(movedata,rassen[tplanet^.racetyp]+#13#10);
     end else writeg(movedata,#10);
     if dx<=75 then showph(336,0,tplanet^.bild)
     else filledrectangle(336,0,336+31,31,0);
    end;
    2:begin
     writeg(movedata,#13#10#0'C'#$c'Y:'#0'C'#$e+tbase^.name+#13#10+
		      rassen[tbase^.owner]+#13#10);
     if dx<=75 then showph(336,0,169)
     else filledrectangle(336,0,336+31,31,0);
    end;
    3:begin
     writeg(movedata,#13#10#0'C'#$c'Y:'#0'C'#$e+tship^.schiffname+#13#10#10);
     if dx<=75 then showph(336,0,hulls[tship^.typnr].bild)
     else filledrectangle(336,0,336+31,31,0);
    end;
    4:begin
     writeg(movedata,#13#10#0'C'#$c'Y:'#0'C'#$e+toship^.schiffname+#13#10+
		      rassen[toship^.owner]+#13#10);
     if dx<=75 then showph(336,0,hulls[toship^.typnr].bild)
     else filledrectangle(336,0,336+31,31,0);
    end;
   else
    filledrectangle(336,0,336+31,31,0);
    writeg(movedata,#13#10#10#10);
   end;
   writeg(movedata,#0'C'#$c'W'#0'C'#$f'arp:'#0'C'#$a+w2s(warp,3,false,false)+#0'C'#$e'   Distanz:'#0'C'#$a+
	  w2s(dx,6,false,false)+#13#10#10);

   if (dx>75)or(tshowthing=0) then writeg(movedata,#0'C'#$7'Visueller Kontakt...')
   else writeg(movedata,#0'C'#$c'V'#0'C'#$f'isueller Kontakt...');
   repeat
    dx:=dist(posx,posy,posz,targetx,targety,targetz);
    dy:=fueluse(dx,sgewicht(schiff),warp,engtyp);
    writeg(movedata,#0'@'#0#9#0'C'#$e'Zeit:'#0'C'#$a+
	   w2s(time(dx,warp+byte((mission1=11)or(mission1=25)and(byte(mission3)=11))),3,false,false)+
	   #0'C'#$e'   Verbrauch:'#0'C'#$a);
    if dy>neutr then writeg(movedata,#0'C'#$d);
    writeg(movedata,l2s(dy,max(digits(dy),4),false,false,false)+#13#10);
    showph(592,436,rasse+242);
    repeat
     redraw:=0;
     c:=upcase(kbreadkey);
     if c=#0 then cs:=byte(kbreadkey) else cs:=kbscancode;
     if not keyhandle(c,cs,rasse,posx,posy,posz,targetx,targety,targetz,redraw)
     then case c of
      #0:case cs of
       $3b:{F1}begin
	case changemode of
	 1,2,4:transsp1(-1);
	 3:transsb1(-1);
	 5:transss1(-1);
	end;
	redraw:=1;
       end;
       $3c:{F2}begin
	case changemode of
	 1,2,4:transsp2(-1);
	 3:transsb2(-1);
	 5:transss2(-1);
	end;
	redraw:=1;
       end;
       $3d:{F3}begin
	case changemode of
	 1,2,4:transsp3(-1);
	 3:transsb3(-1);
	 5:transss3(-1);
	end;
	redraw:=1;
       end;
       $3e:{F4}begin
	case changemode of
	 1,2,4:transsp4(-1);
	 3:transsb4(-1);
	 5:transss4(-1);
	end;
	redraw:=1;
       end;
       $3f:{F5}begin
	case changemode of
	 1,2,4:transsp5(-5);
	 3:transsb5(-1);
	 5:transss5(-5);
	end;
	redraw:=1;
       end;
       $40:{F6}begin
	case changemode of
	 1,2,4:transsp6(-1);
	 3:transsb6(-1);
	 5:transss6(-1);
	end;
	redraw:=1;
       end;
       $41:{F7}begin
	case changemode of
	 1,4:transsp7(-1);
	 3:transsb7(-1);
	 5:transss7(-1);
	end;
	redraw:=1;
       end;
       $42:{F8}begin
	case changemode of
	 3,4:transsb8(-1);
	end;
	redraw:=1;
       end;
       $43{F9} ,$66{^F9} ,$80{A9},$5c{_F9},$70 :begin
	case changemode of
	 3,4:transsp90(schiff^.torps,base^.torps,0);
	end;
	redraw:=3;
       end;
       $44{F10},$67{^F10},$81{A0},$5d{_F10},$71:begin
	case changemode of
	 3,4:transsp90(schiff^.minen,base^.minen,1);
	end;
	redraw:=3;
       end;

       $54,$68:{_F1}begin
	case changemode of
	 1,2,4:transsp1(-100);
	 3:transsb1(-100);
	 5:transss1(-100);
	end;
	redraw:=1;
       end;
       $55,$69:{_F2}begin
	case changemode of
	 1,2,4:transsp2(-100);
	 3:transsb2(-100);
	 5:transss2(-100);
	end;
	redraw:=1;
       end;
       $56,$6a:{_F3}begin
	case changemode of
	 1,2,4:transsp3(-100);
	 3:transsb3(-100);
	 5:transss3(-100);
	end;
	redraw:=1;
       end;
       $57,$6b:{_F4}begin
	case changemode of
	 1,2,4:transsp4(-100);
	 3:transsb4(-100);
	 5:transss4(-100);
	end;
	redraw:=1;
       end;
       $58:{_F5}begin
	case changemode of
	 1,2,4:transsp5(-500);
	 3:transsb5(-500);
	 5:transss5(-500);
	end;
	redraw:=1;
       end;
       $6c:{AF5}begin
	case changemode of
	 1,2,4:transsp5(-5000);
	 3:transsb5(-5000);
	 5:transss5(-5000);
	end;
	redraw:=1;
       end;
       $59,$6d:{_F6}begin
	case changemode of
	 1,2,4:transsp6(-100);
	 3:transsb6(-100);
	 5:transss6(-100);
	end;
	redraw:=1;
       end;
       $5a,$6e:{_F7}begin
	case changemode of
	 1,4:transsp7(-100);
	 3:transsb7(-100);
	 5:transss7(-100);
	end;
	redraw:=1;
       end;
       $5b,$6f:{_F8}begin
	case changemode of
	 3,4:transsb8(-100);
	end;
	redraw:=1;
       end;

       $5e:{^F1}begin
	case changemode of
	 1,2,4:transsp1(eingabenr(20,14,-10000,0,' '#26'Neutronium'#26' '));
	 3:transsb1(eingabenr(20,14,-10000,0,' '#26'Neutronium'#26' '));
	 5:transss1(eingabenr(20,14,-10000,0,' '#26'Neutronium'#26' '));
	end;
	redraw:=3;
       end;
       $5f:{^F2}begin
	case changemode of
	 1,2,4:transsp2(eingabenr(20,15,-10000,0,' '#26'Molybdenium'#26' '));
	 3:transss2(eingabenr(20,15,-10000,0,' '#26'Molybdenium'#26' '));
	 5:transsb2(eingabenr(20,15,-10000,0,' '#26'Molybdenium'#26' '));
	end;
	redraw:=3;
       end;
       $60:{^F3}begin
	case changemode of
	 1,2,4:transsp3(eingabenr(21,16,-10000,0,' '#26'Duranium'#26' '));
	 3:transsb3(eingabenr(21,16,-10000,0,' '#26'Duranium'#26' '));
	 5:transss3(eingabenr(21,16,-10000,0,' '#26'Duranium'#26' '));
	end;
	redraw:=3;
       end;
       $61:{^F4}begin
	case changemode of
	 1,2,4:transsp4(eingabenr(21,17,-10000,0,' '#26'Tritanium'#26' '));
	 3:transsb4(eingabenr(21,17,-10000,0,' '#26'Tritanium'#26' '));
	 5:transss4(eingabenr(21,17,-10000,0,' '#26'Tritanium'#26' '));
	end;
	redraw:=3;
       end;
       $62:{^F5}begin
	case changemode of
	 1,2,4:transsp5(eingabenr(20,18,-1000000,0,' '#26'Kolonisten'#26' '));
	 3:transsb5(eingabenr(20,18,-1000000,0,' '#26'Kolonisten'#26' '));
	 5:transss5(eingabenr(20,18,-1000000,0,' '#26'Kolonisten'#26' '));
	end;
	redraw:=3;
       end;
       $63:{^F6}begin
	case changemode of
	 1,2,4:transsp6(eingabenr(21,19,-10000,0,' '#26'Waren    '#26' '));
	 3:transsb6(eingabenr(21,19,-10000,0,' '#26'Waren    '#26' '));
	 5:transss6(eingabenr(21,19,-10000,0,' '#26'Waren    '#26' '));
	end;
	redraw:=3;
       end;
       $64:{^F7}begin
	case changemode of
	 1,4:transsp7(eingabenr(22,20,-10000,0,' '#26'Credits'#26' '));
	 3:transsb7(eingabenr(22,20,-10000,0,' '#26'Credits'#26' '));
	 5:transss7(eingabenr(22,20,-10000,0,' '#26'Credits'#26' '));
	end;
	redraw:=3;
       end;
       $65:{^F8}case changemode of
	3,4:begin
	 transsb8(eingabenr(23,21,-10000,0,' '#26'J„ger'#26' '));
	 redraw:=3;
	end;
       end;

       $78:{A1}begin
	case changemode of
	 1,2,4:transsp1(100);
	 3:transsb1(100);
	 5:transss1(100);
	end;
	redraw:=1;
       end;
       $79:{A2}begin
	case changemode of
	 1,2,4:transsp2(100);
	 3:transsb2(100);
	 5:transss2(100);
	end;
	redraw:=1;
       end;
       $7a:{A3}begin
	case changemode of
	 1,2,4:transsp3(100);
	 3:transsb3(100);
	 5:transss3(100);
	end;
	redraw:=1;
       end;
       $7b:{A4}begin
	case changemode of
	 1,2,4:transsp4(100);
	 3:transsb4(100);
	 5:transss4(100);
	end;
	redraw:=1;
       end;
       $7c:{A5}begin
	case changemode of
	 1,2,4:transsp5(5000);
	 3:transsb5(5000);
	 5:transss5(5000);
	end;
	redraw:=1;
       end;
       $7d:{A6}begin
	case changemode of
	 1,2,4:transsp6(100);
	 3:transsb6(100);
	 5:transss6(100);
	end;
	redraw:=1;
       end;
       $7e,$08:{A7}begin
	case changemode of
	 1,4:transsp7(100);
	 3:transsb7(100);
	 5:transss7(100);
	end;
	redraw:=1;
       end;
       $7f:{A8}begin
	case changemode of
	 3,4:transsb8(100);
	end;
	redraw:=1;
       end;
       $30:{Ab}begin
	if BaseNr<>-1 then showthing:=2;
	if tBaseNr<>-1 then tshowthing:=2;
	redraw:=2;
       end;
       $22:{Ag}begin
	if isopponent then begin
	 showthing:=4;
	 oshipnr:=shiplist(rasse,x,y,z,7,id_nr,'Gegnerische Schiffe bei Schiff',0);
	 if oshipnr=-1 then showthing:=0 else oship:=getship(oshipnr);
	 redraw:=3;
	end;
	if tisopponent then begin
	 tshowthing:=4;
	 toshipnr:=shiplist(rasse,targetx,targety,targetz,7,id_nr,'Gegnerische Schiffe bei Zielpunkt',0);
	 if toshipnr=-1 then tshowthing:=0 else toship:=getship(toshipnr);
	 redraw:=3;
	end;
       end;
       $19:{Ap}begin
	if PlanetNr<>-1 then showthing:=1;
	if tPlanetNr<>-1 then tshowthing:=1;
	redraw:=2;
       end;
       $1f:{As}begin
	if isship then showthing:=3;
	if tisship then tshowthing:=3;
	redraw:=3;
       end;
       255:{Mausklick}begin
	dx:=planlist(rasse,x,y,z,4);
	if dx=-2 then begin
	 window(44*8-2,20*16-2,65*8+1,21*16+1);
	 writex(45,21,$4f,'kein Planet in Sektor');
	 while not kbkeypressed do begin
	  filledrectangle2(44*8,20*16,65*8-1,21*16-1,1,2);
	  kbdelay(250000);
	  if not kbkeypressed
	  then filledrectangle2(44*8,20*16,65*8-1,21*16-1,$fe,1);
	  kbdelay(250000);
	 end;
	 kbreset;
	end else if dx<>-1 then begin
	 tplanet:=getplan(dx);
	 with tplanet^ do begin
	  targetx:=posx;
	  targety:=posy;
	  targetz:=posz;
	  tshowthing:=1;
	  tplanetnr:=id_nr;
	 end;
	end;
	redraw:=3;
       end;
      end;
      '1':begin
       case changemode of
	1,2,4:transsp1(1);
	3:transsb1(1);
	5:transss1(1);
       end;
       redraw:=1;
      end;
      '2':begin
       case changemode of
	1,2,4:transsp2(1);
	3:transsb2(1);
	5:transss2(1);
       end;
       redraw:=1;
      end;
      '3':begin
       case changemode of
	1,2,4:transsp3(1);
	3:transsb3(1);
	5:transss3(1);
       end;
       redraw:=1;
      end;
      '4':begin
       case changemode of
	1,2,4:transsp4(1);
	3:transsb4(1);
	5:transss4(1);
       end;
       redraw:=1;
      end;
      '5':begin
       case changemode of
	1,2,4:transsp5(5);
	3:transsb5(5);
	5:transss5(5);
       end;
       redraw:=1;
      end;
      '6':begin
       case changemode of
	1,2,4:transsp6(1);
	3:transsb6(1);
	5:transss6(1);
       end;
       redraw:=1;
      end;
      '7':begin
       case changemode of
	1,4:transsp7(1);
	3:transsb7(1);
	5:transss7(1);
       end;
       redraw:=1;
      end;
      '8':begin
       case changemode of
	3,4:transsb8(1);
       end;
       redraw:=1;
      end;
      '9':begin
       case changemode of
	3,4:transsp90(schiff^.torps,base^.torps,0);
       end;
       redraw:=3;
      end;
      '0':begin
       case changemode of
	3,4:transsp90(schiff^.minen,base^.minen,1);
       end;
       redraw:=3;
      end;
      '!','"','','$','%','&','/','(',')','=','^','@','#','*':case cs of
       { Shift+Zahl: Scancode= Taste-Nr+1 }
       2:begin
	case changemode of
	 1,2,4:transsp1(100);
	 3:transsb7(100);
	 5:transss7(100);
	end;
	redraw:=1;
       end;
       3:begin
	case changemode of
	 1,2,4:transsp2(100);
	 3:transsb2(100);
	 5:transss2(100);
	end;
	redraw:=1;
       end;
       4:begin
	case changemode of
	 1,2,4:transsp3(100);
	 3:transsb3(100);
	 5:transss3(100);
	end;
	redraw:=1;
       end;
       5:begin
	case changemode of
	 1,2,4:transsp4(100);
	 3:transsb4(100);
	 5:transss4(100);
	end;
	redraw:=1;
       end;
       6:begin
	case changemode of
	 1,2,4:transsp5(500);
	 3:transsb5(500);
	 5:transss5(500);
	end;
	redraw:=1;
       end;
       7:begin
	case changemode of
	 1,2,4:transsp6(100);
	 3:transsb6(100);
	 5:transss6(100);
	end;
	redraw:=1;
       end;
       8:begin
	case changemode of
	 1,4:transsp7(100);
	 3:transsb7(100);
	 5:transss7(100);
	end;
	redraw:=1;
       end;
       9:begin
	case changemode of
	 3,4:transsb8(100);
	end;
	redraw:=1;
       end;
       10:begin
	case changemode of
	 3,4:transsp90(schiff^.torps,base^.torps,0);
	end;
	redraw:=3;
       end;
       11:begin
	case changemode of
	 3,4:transsp90(schiff^.minen,base^.minen,1);
	end;
	redraw:=3;
       end;
      end;
      'S':begin
       NeuerName(schiff^.schiffname,30);
       redraw:=3;
      end;
      'T','B':bestuckung;
      'M':begin
       MissionSelect;
       redraw:=3;
      end;
      'Z':if byte(mission3 shr 8)<>25 then begin
       changeid:=shiplist(rasse,x,y,z,5,id_nr,'Tauschziel w„hlen:',
       byte(planetnr<>-1)or(byte((basenr<>-1)and(base^.owner=rasse)) shl 1));
       changemode:=0;
       if changeid=-1 then
       else if changeid=-2 then begin
	if planetnr<>-1 then begin
	 if planet^.racetyp=rasse then changemode:=1 else changemode:=2;
	end;
	if (BaseNr<>-1)and(base^.owner=rasse)then begin
	 if changemode=1 then changemode:=4 else changemode:=3;
	end;
       end else begin
	changemode:=5;
	ship:=getship(changeid);
       end;
       redraw:=3;
      end;
      'W':begin
       warp:=eingabenr(44,22,9,warp,'Warp:');
       redraw:=2;
      end;
      'N':begin
       dx:=planlist(rasse,x,y,z,4);
       if dx=-2 then begin
	window(44*8-2,20*16-2,65*8+1,21*16+1);
	writex(45,21,$4f,'kein Planet in Sektor');
	while not kbkeypressed do begin
	 filledrectangle2(44*8,20*16,65*8-1,21*16-1,1,2);
	 kbdelay(250000);
	 if not kbkeypressed
	 then filledrectangle2(44*8,20*16,65*8-1,21*16-1,$fe,1);
	 kbdelay(250000);
	end;
	kbreset;
       end else if dx<>-1 then begin
	tplanet:=getplan(dx);
	with tplanet^ do begin
	 targetx:=posx;
	 targety:=posy;
	 targetz:=posz;
	 tshowthing:=1;
	 tplanetnr:=id_nr;
	end;
       end;
       redraw:=3;
      end;
      'V':if dist(posx,posy,posz,targetx,targety,targetz)<=75 then begin
       case tshowthing of
	1:if tplanet^.racetyp=rasse then visualcontact(rasse,2,tplanetnr)
	  else if (tbasenr<>-1)or(tshipnr<>-1) then visualcontact(rasse,5,tplanetnr)
	  else visualcontact(rasse,4,tplanetnr);
	2:if tbase^.owner=rasse then visualcontact(rasse,1,tbasenr)
	  else visualcontact(rasse,6,tbasenr);
	3:visualcontact(rasse,0,tshipnr);
	4:visualcontact(rasse,3,toshipnr);
       end;
       redraw:=3;
      end;
      #02:{Cb}begin
       if BaseNr<>-1 then showthing:=2;
       if tBaseNr<>-1 then tshowthing:=2;
       redraw:=2;
      end;
      #07:{Cg}begin
       if isopponent then showthing:=4;
       if tisopponent then tshowthing:=4;
       redraw:=2;
      end;
      #16:{Cp}begin
       if PlanetNr<>-1 then showthing:=1;
       if tPlanetNr<>-1 then tshowthing:=1;
       redraw:=2;
      end;
      #19:{Cs}begin
       if isship then showthing:=3;
       if tisship then tshowthing:=3;
       redraw:=2;
      end;
      '+':begin
       runmenu(shipmenu,rasse,nextship(id,rasse,0,0,0,1),0,0,0,0);
       kbreset;
       redraw:=4;
      end;
      '-':begin
       runmenu(shipmenu,rasse,lastship(id,rasse,0,0,0,1),0,0,0,0);
       kbreset;
       redraw:=4;
      end;
      'X':case showthing of
       1:if planet^.racetyp=rasse then begin
	runmenu(planmenu,rasse,planetnr,0,0,0,0);
	redraw:=4;
       end else begin
	if (basenr<>-1)or(shipnr<>-1) then visualcontact(rasse,5,planetnr)
	else visualcontact(rasse,4,planetnr);
	redraw:=3;
       end;
       2:if base^.owner=rasse then begin
	runmenu(basemenu,rasse,basenr,0,0,0,0);
	redraw:=4;
       end else begin
	visualcontact(rasse,6,basenr);
	redraw:=3;
       end;
       3:begin
	runmenu(shipmenu,rasse,shipnr,0,0,0,0);
	redraw:=4;
       end;
       4:;
      end;
      'Y':case tshowthing of
       1:if tplanet^.racetyp=rasse then begin
	runmenu(planmenu,rasse,tplanetnr,0,0,0,0);
	redraw:=4;
       end else begin
	if (tbasenr<>-1)or(tshipnr<>-1) then visualcontact(rasse,5,tplanetnr)
	else if dist(posx,posy,posz,targetx,targety,targetz)<=75 then visualcontact(rasse,4,tplanetnr);
	redraw:=3;
       end;
       2:if tbase^.owner=rasse then begin
	runmenu(basemenu,rasse,tbasenr,0,0,0,0);
	redraw:=4;
       end else begin
	if dist(posx,posy,posz,targetx,targety,targetz)<=75 then visualcontact(rasse,6,tbasenr);
	redraw:=3;
       end;
       3:begin
	runmenu(shipmenu,rasse,tshipnr,0,0,0,0);
	redraw:=4;
       end;
       4:begin
	if dist(posx,posy,posz,targetx,targety,targetz)<=75 then visualcontact(rasse,3,toshipnr);
	redraw:=3;
       end;
      end;
     end;
    until redraw>0;
   until redraw>1;
  until redraw>2;
 end;

begin { shipmenu }
 showthing:=0;
 tshowthing:=0;
 initb(shipdata,8,8,40,29,15,0);
 initb(movedata,340,264,36,13,15,0);
 toship:=nil;
 tship:=nil;
 if id=-1 then id:=shiplist(rasse,x,y,z,5,-1,'Schiffe @('+strg(x)+';'+strg(y)+';'+strg(z)+'):',0);
 if id=-1 then begin
  oldmenu;
  exit;
 end;
 schiff:=getship(id);
 if schiff=nil then begin
  oldmenu;
  exit;
 end;
 with schiff^ do with hulls[typnr] do begin
  x:=posx;
  y:=posy;
  z:=posz;
  PlanetNr:=PlanID(posx,posy,posz);
  if planetNr<>-1 then planet:=getplan(planetnr) else planet:=nil;
  BaseNr:=BaseID(posx,posy,posz);
  if baseNr<>-1 then base:=getbase(basenr) else base:=nil;
  CanFight:=(beams<>0)or(bays<>0)and(fighter<>0)
  or(torprohre<>0)and((torps[1]<>0)or(torps[2]<>0)or(torps[3]<>0)
		    or(torps[4]<>0)or(torps[5]<>0)or(torps[6]<>0)
		    or(torps[7]<>0)or(torps[8]<>0)or(torps[9]<>0));
  Missionen:=missionflags and GMissionFlags[rasse];
  if not canfight then missionen:=missionen and not $200384b0;
  changemode:=0;
  if byte(mission3 shr 8)<>25 then begin
   if PlanetNr<>-1 then begin
    if planet^.racetyp=rasse then begin
     changemode:=1;
     Changeid:=PlanetNr;
     missionen:=missionen and not $803f8000;
    end else begin
     changemode:=2;
     Changeid:=PlanetNr;
     if planet^.racetyp=32 then missionen:=missionen and not $00200000
     else missionen:=missionen and not $50200000;
    end;
   end else begin
    missionen:=missionen and not $803f8000;
   end;
  end;
  if (changemode=0)and(baseNr<>0) then begin
   ChangeMode:=4;
   ChangeID:=BaseNr;
  end;
  If Basenr<>-1 then begin
   if base^.owner=rasse
   then begin
    if changemode=1 then changemode:=4 else changemode:=3;
    if canbuildtyp(base,typnr) then missionen:=missionen and not $40000000;
    missionen:=missionen and not $10000000;
   end else missionen:=missionen and not $51800000;
  end else Missionen:=missionen and not $61800000;

  shipnr:=firstship(rasse,x,y,z,5);
  if shipnr=id_nr then shipnr:=nextship(shipnr,rasse,x,y,z,5);
  if shipnr=id_nr then shipnr:=-1;
  ship:=getship(shipnr);
  isship:=shipnr<>-1;
  if not isship then missionen:=missionen and not $00002000;

  IsownShip:=rasse=owner;
  if not isownship then missionen:=missionen and not $58800000 or $06000000;
  oshipnr:=firstship(rasse,posx,posy,posz,7);
  if oshipnr=id_nr then nextship(oshipnr,rasse,posx,posy,posz,7);
  if oshipnr=id_nr then oshipnr:=-1;
  oship:=getship(oshipnr);

  isopponent:=(oshipnr<>-1)or(basenr<>-1)and(base^.owner<>rasse)
			   or(planetnr<>-1)and(planet^.racetyp<>rasse);
  if isownship and not isopponent then missionen:=missionen and not $04000000;
 end;
 with schiff^ do with hulls[typnr] do repeat
  ClearScreen(0);
  Window(6,6,329,473);
  Window(338,262,629,473);
  writeg(shipdata,#0'C'#$c#12'S'#0'C'#$f'chiff:'#0'C'#$e+
		  schiffname+#0'C'#$f#13#10);
  showp(240,136,bild);
  writeg(shipdata,'   '#0'C'#$c'T'#0'C'#$f'yp:'#0'C'#$e+name+#0'C'#$f#13#10);
  writeg(shipdata,'Status:');
  if damage=0 then writeg(shipdata,#0'C'#$a) else writeg(shipdata,#0'C'#$c);
  writeg(shipdata,w2s(damage div 10,3,false,false)+'.'+strg(damage mod 10)+'% besch„digt'#0'C'#$f#13#10);
  writeg(shipdata,#0'C'#$c'M'#0'C'#$f'ission: ');
  writemissions(schiff,rasse,shipdata,mission1,mission2,mission3,mission4,true);
  writeg(shipdata,#0'C'#$c'B'#0'C'#$f'est�ckung:'#0'C'#$e#13#10);
  writeg(shipdata,' '+nstring(Engname(engtyp),20)+':'#0'C'#$a+w2s(enganz,4,false,false)+#0'C'#$e#13#10);
  writeg(shipdata,' '+nstring(Beamname(Beamtyp),20)+':'#0'C'#$a+w2s(beams,4,false,false)+#0'C'#$e#13#10);
  writeg(shipdata,' '+nstring(torprname(torprohretyp),20)+':'#0'C'#$a+w2s(torprohre,4,false,false)+#0'C'#$e#13#10);
  writeg(shipdata,' '+'J„ger-Startrampen   :'#0'C'#$a+w2s(bays,4,false,false)+#0'C'#$e#13#10);
  writeg(shipdata,' '+'Minenwerfer         :'#0'C'#$a+w2s(minenleger,4,false,false)+#0'C'#$e#13#10);
  writeg(shipdata,' '+'Crew'+spaces(9-digits(mincrew))+'(Min.:'#0'C'#$a+strg(mincrew)+#0'C'#$e'):'#0'C'#$a
		     +w2s(crew,4,false,false)+#0'C'#$e'/'#0'C'#$a+strg(maxcrew)+#0'C'#$e#13#10#10);
  case changemode of
   0:begin
    writeg(shipdata,#0'C'#$f'Ladung:'#0'C'#$e#13#10);
    writeg(shipdata,' Neutronium :'#0'C'#$a+l2s(Neutr,7,false,false,false)+
			#0'C'#$e'/'#0'C'#$a+strg(maxfuel)+#0'C'#$e#13#10);
    writeg(shipdata,' Molybdenium:'#0'C'#$a+l2s(molyb,7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' Duranium   :'#0'C'#$a+l2s(dura,7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' Tritanium  :'#0'C'#$a+l2s(trit,7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' Waren      :'#0'C'#$a+l2s(supplies,7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' Kolonisten :'#0'C'#$a+l2s(colons,7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' Credits    :'#0'C'#$a+l2s(cred,7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' J„ger      :'#0'C'#$a+l2s(fighter,7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' Torpedos   :'#0'C'#$a+l2s(torps[1]+torps[2]+torps[3]
   +torps[4]+torps[5]+torps[6]+torps[7]+torps[8]+torps[9],7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' Minen      :'#0'C'#$a+l2s(Minen[1]+Minen[2]+Minen[3]
    +Minen[4]+Minen[5]+Minen[6]+Minen[7]+Minen[8]+Minen[9],7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' Masse      :'#0'C'#$a+
		    l2s(sgewicht(schiff),digits(maxmasse),false,false,false)
		    +#0'C'#$e'/'#0'C'#$a+l2s(MaxMasse,digits(maxmasse),false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,#0'C'#$f'Tausch'#0'C'#$c'z'#0'C'#$f'iel:'#0'C'#$e#13#10);
    writeg(shipdata,'  (Kein Tauschziel)');
   end;
   1:begin
    writeg(shipdata,#0'C'#$f'Ladung:                    Planet:'#0'C'#$c#13#10);
    writeg(shipdata,'1'#0'C'#$e'Neutronium :'#0'C'#$a+l2s(Neutr,7,false,false,false)+#0'C'#$e'/'#0'C'#$a+strg(maxfuel)+
		    spaces(4-digits(maxfuel))+#27#26#0'C'#$a+l2s(planet^.minedneutr,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'2'#0'C'#$e'Molybdenium:'#0'C'#$a+l2s(molyb,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(planet^.minedmolyb,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'3'#0'C'#$e'Duranium   :'#0'C'#$a+l2s(dura,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(planet^.mineddura,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'4'#0'C'#$e'Tritanium  :'#0'C'#$a+l2s(trit,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(planet^.minedtrit,8,false,false,false)+#0'C'#$7'_'#0'C'#$c#13#10);
    writeg(shipdata,'5'#0'C'#$e'Kolonisten :'#0'C'#$a+l2s(colons,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(planet^.raceanz,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'6'#0'C'#$e'Waren      :'#0'C'#$a+l2s(supplies,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(planet^.supplies,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'7'#0'C'#$e'Credits    :'#0'C'#$a+l2s(cred,7,false,false,false)+
		    '     '#27#26+#0'C'#$a+l2s(planet^.creds,8,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' J„ger      :'#0'C'#$a+l2s(fighter,7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' Torpedos   :'#0'C'#$a+l2s(torps[1]+torps[2]+torps[3]
   +torps[4]+torps[5]+torps[6]+torps[7]+torps[8]+torps[9],7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' Minen      :'#0'C'#$a+l2s(Minen[1]+Minen[2]+Minen[3]
    +Minen[4]+Minen[5]+Minen[6]+Minen[7]+Minen[8]+Minen[9],7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' Masse      :'#0'C'#$a+
		    l2s(sgewicht(schiff),7,false,false,false)
		    +#0'C'#$e'/'#0'C'#$a+l2s(MaxMasse,digits(maxmasse),false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,#0'C'#$f'Tausch'#0'C'#$c'z'#0'C'#$f'iel:'#0'C'#$e#13#10);
    writeg(shipdata,'Planet:'+Planet^.name);
   end;
   2:begin
    writeg(shipdata,#0'C'#$f'Ladung:                    Planet(neu):'#0'C'#$c#13#10);
    writeg(shipdata,'1'#0'C'#$e'Neutronium :'#0'C'#$a+l2s(Neutr,7,false,false,false)+#0'C'#$e'/'#0'C'#$a+strg(maxfuel)+
		    spaces(4-digits(maxfuel))+#27#26#0'C'#$a+l2s(planet^.minedneutr,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'2'#0'C'#$e'Molybdenium:'#0'C'#$a+l2s(molyb,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(planet^.minedmolyb,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'3'#0'C'#$e'Duranium   :'#0'C'#$a+l2s(dura,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(planet^.mineddura,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'4'#0'C'#$e'Tritanium  :'#0'C'#$a+l2s(trit,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(planet^.minedtrit,8,false,false,false)+#0'C'#$7'_'#0'C'#$c#13#10);
    writeg(shipdata,'5'#0'C'#$e'Kolonisten :'#0'C'#$a+l2s(colons,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(planet^.raceanz,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'6'#0'C'#$e'Waren      :'#0'C'#$a+l2s(supplies,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(planet^.supplies,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,' '#0'C'#$e'Credits    :'#0'C'#$a+l2s(cred,7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' J„ger      :'#0'C'#$a+l2s(fighter,7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' Torpedos   :'#0'C'#$a+l2s(torps[1]+torps[2]+torps[3]
   +torps[4]+torps[5]+torps[6]+torps[7]+torps[8]+torps[9],7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' Minen      :'#0'C'#$a+l2s(Minen[1]+Minen[2]+Minen[3]
    +Minen[4]+Minen[5]+Minen[6]+Minen[7]+Minen[8]+Minen[9],7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' Masse      :'#0'C'#$a+
		    l2s(sgewicht(schiff),7,false,false,false)
		    +#0'C'#$e'/'#0'C'#$a+l2s(MaxMasse,digits(maxmasse),false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,#0'C'#$f'Tausch'#0'C'#$c'z'#0'C'#$f'iel:'#0'C'#$e#13#10);
    writeg(shipdata,'Planet:'+Planet^.name);
   end;
   4:begin
    writeg(shipdata,#0'C'#$f'Ladung:                  Planet+Basis:'#0'C'#$c#13#10);
    writeg(shipdata,'1'#0'C'#$e'Neutronium :'#0'C'#$a+l2s(Neutr,7,false,false,false)+#0'C'#$e'/'#0'C'#$a+strg(maxfuel)+
		    spaces(4-digits(maxfuel))+#27#26#0'C'#$a+l2s(planet^.minedneutr,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'2'#0'C'#$e'Molybdenium:'#0'C'#$a+l2s(molyb,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(planet^.minedmolyb,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'3'#0'C'#$e'Duranium   :'#0'C'#$a+l2s(dura,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(planet^.mineddura,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'4'#0'C'#$e'Tritanium  :'#0'C'#$a+l2s(trit,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(planet^.minedtrit,8,false,false,false)+#0'C'#$7'_'#0'C'#$c#13#10);
    writeg(shipdata,'5'#0'C'#$e'Kolonisten :'#0'C'#$a+l2s(colons,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(planet^.raceanz,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'6'#0'C'#$e'Waren      :'#0'C'#$a+l2s(supplies,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(planet^.supplies,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'7'#0'C'#$e'Credits    :'#0'C'#$a+l2s(cred,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(planet^.creds,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'8'#0'C'#$e'J„ger      :'#0'C'#$a+l2s(fighter,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(base^.fighter,8,false,false,false)+#0'C'#$7'_'#0'C'#$c#13#10);
    writeg(shipdata,'9'#0'C'#$e'Torpedos   :'#0'C'#$a+l2s(torps[1]+torps[2]+torps[3]
   +torps[4]+torps[5]+torps[6]+torps[7]+torps[8]+torps[9],7,false,false,false)+
		    '     '#17#16#0'C'#$a+l2s(base^.torps[1]+base^.torps[2]+base^.torps[3]
   +base^.torps[4]+base^.torps[5]+base^.torps[6]+base^.torps[7]+base^.torps[8]+base^.torps[9],8,false,false,false)+
      #0'C'#$c#13#10);
    writeg(shipdata,'0'#0'C'#$e'Minen      :'#0'C'#$a+l2s(Minen[1]+Minen[2]+Minen[3]
    +Minen[4]+Minen[5]+Minen[6]+Minen[7]+Minen[8]+Minen[9],7,false,false,false)+
		    '     '#17#16#0'C'#$a+l2s(base^.minen[1]+base^.minen[2]+base^.minen[3]
   +base^.minen[4]+base^.minen[5]+base^.minen[6]+base^.minen[7]+base^.minen[8]+base^.minen[9],8,false,false,false)+
      #0'C'#$e#13#10);
    writeg(shipdata,' Masse      :'#0'C'#$a+
		    l2s(sgewicht(schiff),7,false,false,false)
		    +#0'C'#$e'/'#0'C'#$a+l2s(MaxMasse,digits(maxmasse),false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,#0'C'#$f'Tausch'#0'C'#$c'z'#0'C'#$f'iel:'#0'C'#$e#13#10);
    writeg(shipdata,'Planet:'+Planet^.name);
   end;
   3:begin
    writeg(shipdata,#0'C'#$f'Ladung:                  Basis:'#0'C'#$c#13#10);
    writeg(shipdata,'1'#0'C'#$e'Neutronium :'#0'C'#$a+l2s(Neutr,7,false,false,false)+#0'C'#$e'/'#0'C'#$a+strg(maxfuel)+
		    spaces(4-digits(maxfuel))+#27#26#0'C'#$a+l2s(base^.neutr,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'2'#0'C'#$e'Molybdenium:'#0'C'#$a+l2s(molyb,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(base^.molyb,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'3'#0'C'#$e'Duranium   :'#0'C'#$a+l2s(dura,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(base^.dura,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'4'#0'C'#$e'Tritanium  :'#0'C'#$a+l2s(trit,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(base^.trit,8,false,false,false)+#0'C'#$7'_'#0'C'#$c#13#10);
    writeg(shipdata,'5'#0'C'#$e'Kolonisten :'#0'C'#$a+l2s(colons,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(base^.crew,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'6'#0'C'#$e'Waren      :'#0'C'#$a+l2s(supplies,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(base^.supplies,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'7'#0'C'#$e'Credits    :'#0'C'#$a+l2s(cred,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(base^.creds,8,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'8'#0'C'#$e'J„ger      :'#0'C'#$a+l2s(fighter,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(base^.fighter,8,false,false,false)+#0'C'#$7'_'#0'C'#$c#13#10);
    writeg(shipdata,'9'#0'C'#$e'Torpedos   :'#0'C'#$a+l2s(torps[1]+torps[2]+torps[3]
   +torps[4]+torps[5]+torps[6]+torps[7]+torps[8]+torps[9],7,false,false,false)+
		    '     '#17#16#0'C'#$a+l2s(base^.torps[1]+base^.torps[2]+base^.torps[3]
   +base^.torps[4]+base^.torps[5]+base^.torps[6]+base^.torps[7]+base^.torps[8]+base^.torps[9],8,false,false,false)+
      #0'C'#$c#13#10);
    writeg(shipdata,'0'#0'C'#$e'Minen      :'#0'C'#$a+l2s(Minen[1]+Minen[2]+Minen[3]
    +Minen[4]+Minen[5]+Minen[6]+Minen[7]+Minen[8]+Minen[9],7,false,false,false)+
		    '     '#17#16#0'C'#$a+l2s(base^.minen[1]+base^.minen[2]+base^.minen[3]
   +base^.minen[4]+base^.minen[5]+base^.minen[6]+base^.minen[7]+base^.minen[8]+base^.minen[9],8,false,false,false)+
      #0'C'#$e#13#10);
    writeg(shipdata,' Masse      :'#0'C'#$a+
		    l2s(sgewicht(schiff),7,false,false,false)
		    +#0'C'#$e'/'#0'C'#$a+l2s(MaxMasse,digits(maxmasse),false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,#0'C'#$f'Tausch'#0'C'#$c'z'#0'C'#$f'iel:'#0'C'#$e#13#10);
    writeg(shipdata,'Planet:'+base^.name);
   end;
   5:begin
    writeg(shipdata,#0'C'#$f'Ladung:                    Ziel:'#0'C'#$c#13#10);
    writeg(shipdata,'1'#0'C'#$e'Neutronium :'#0'C'#$a+l2s(Neutr,7,false,false,false)+#0'C'#$e'/'#0'C'#$a+strg(maxfuel)+
		    spaces(4-digits(maxfuel))+#27#26#0'C'#$a+l2s(ship^.neutr,7,false,false,false)+
		    #0'C'#$e'/'#0'C'#$a+strg(hulls[ship^.typnr].maxfuel)+#0'C'#$c#13#10);
    writeg(shipdata,'2'#0'C'#$e'Molybdenium:'#0'C'#$a+l2s(molyb,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(ship^.molyb,7,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'3'#0'C'#$e'Duranium   :'#0'C'#$a+l2s(dura,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(ship^.dura,7,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'4'#0'C'#$e'Tritanium  :'#0'C'#$a+l2s(trit,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(ship^.trit,7,false,false,false)+#0'C'#$7'_'#0'C'#$c#13#10);
    writeg(shipdata,'5'#0'C'#$e'Kolonisten :'#0'C'#$a+l2s(colons,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(ship^.colons,7,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'6'#0'C'#$e'Waren      :'#0'C'#$a+l2s(supplies,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(ship^.supplies,7,false,false,false)+#0'C'#$c#13#10);
    writeg(shipdata,'7'#0'C'#$e'Credits    :'#0'C'#$a+l2s(cred,7,false,false,false)+
		    '     '#27#26#0'C'#$a+l2s(ship^.cred,7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' J„ger      :'#0'C'#$a+l2s(fighter,7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' Torpedos   :'#0'C'#$a+l2s(torps[1]+torps[2]+torps[3]
   +torps[4]+torps[5]+torps[6]+torps[7]+torps[8]+torps[9],7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' Minen      :'#0'C'#$a+l2s(Minen[1]+Minen[2]+Minen[3]
    +Minen[4]+Minen[5]+Minen[6]+Minen[7]+Minen[8]+Minen[9],7,false,false,false)+#0'C'#$e#13#10);
    writeg(shipdata,' Masse      :'#0'C'#$a+
		    l2s(sgewicht(schiff),7,false,false,false)
		    +#0'C'#$e'/'#0'C'#$a+strg(MaxMasse)+spaces(6-digits(maxmasse))
		    +#0'C'#$a+l2s(sgewicht(ship),7,false,false,false)
		    +#0'C'#$e'/'#0'C'#$a+strg(hulls[ship^.typnr].maxmasse)+#0'C'#$e#13#10);
    writeg(shipdata,#0'C'#$f'Tausch'#0'C'#$c'z'#0'C'#$f'iel:'#0'C'#$e#13#10);
    writeg(shipdata,'Schiff:'+hulls[ship^.typnr].name);
   end;
  end;
  tastatur;
 until redraw=4;
end;

end .