home *** CD-ROM | disk | FTP | other *** search
/ Game Killer / Game_Killer.bin / 093.BUSTED.INC < prev    next >
Text File  |  1992-07-01  |  3KB  |  101 lines

  1. {routines for dealing with busts}
  2.  
  3. procedure UpdateBusts;
  4. { run through the ports, clearing any outdated busts }
  5. const
  6.   ExpireTime = 14;                    { ports forget you after 2 weeks }
  7. var
  8.   FreeDate : word;
  9.   p        : portIndex;
  10.   numFreed : integer;
  11. begin
  12.   writeln('Updating port records...');
  13.   NumFreed := 0;
  14.   FreeDate := DateWord - ExpireTime;
  15.   for p := 1 to space.ports.top do
  16.     with space.ports.data[ p ] do
  17.       if (bustdate > 0) and (bustdate < FreeDate) then
  18.         begin {clear port record of bust}
  19.           bustdate := 0;
  20.           numFreed := numFreed + 1;
  21.           space.sectors[ where ].etc :=
  22.                space.sectors[ where ].etc and (not Busted);
  23.         end; {for with if}
  24.   writeln( Numfreed, ' criminal records wiped.');
  25.   if NumFreed > 0 then
  26.     BaseChanged := true;                     { force update of data base }
  27. end;
  28.  
  29. procedure RecordBust;
  30. { record being busted at sector}
  31. var
  32.   s : sectorindex;
  33.   p : portindex;
  34. begin
  35.   write('Pity about being busted...  ');
  36.   s := GetSector;
  37.   if s <> 0 then
  38.     with space.sectors[s] do
  39.       if etc and IsPort = Nothing then
  40.         writeln('error: sector ', s, ' is not a port ')
  41.       else
  42.         begin
  43.           BaseChanged := true;
  44.           etc := etc or Busted;
  45.           p := PortNumber( s );
  46.           if p <> 0 then
  47.             with space.ports.data[p] do
  48.               bustDate := DateWord;
  49.         end;
  50. end;
  51.  
  52. procedure ClearBust;
  53. { clear record of being busted at sector}
  54. var
  55.   s : sectorindex;
  56.   p : portindex;
  57. begin
  58.   write('Clear Which ');
  59.   s := GetSector;
  60.   if s <> 0 then
  61.     with space.sectors[s] do
  62.       if etc and IsPort = Nothing then
  63.         writeln('error: sector ', s, ' is not a port ')
  64.       else if etc and Busted = Nothing then
  65.         writeln('I have no record you you being busted at that port!')
  66.       else
  67.         begin
  68.           BaseChanged := true;
  69.           etc := etc and (not Busted);
  70.           p := PortNumber( s );
  71.           if p <> 0 then
  72.             with space.ports.data[p] do
  73.               bustDate := 0;
  74.         end;
  75. end;
  76.  
  77. function HardLuckMenu : char;
  78. var
  79.   ch : char;
  80. begin
  81.   repeat
  82.     writeln('record <B>usted sector');
  83.     writeln('<C>lear bust');
  84.     writeln('<U>pdate all bust flags');
  85.     writeln;
  86.     write('Your choice? ');
  87.     readln( ch );
  88.     ch := upcase( ch );
  89.   until ch in ['B','C','U'];
  90.   HardLuckMenu := ch;
  91. end;
  92.  
  93. procedure HardLuck;
  94. { busted at port manipulation }
  95. begin
  96.   case HardLuckMenu of
  97.     'B' : RecordBust;
  98.     'C' : ClearBust;
  99.     'U' : UpdateBusts;
  100.   end;
  101. end;