home *** CD-ROM | disk | FTP | other *** search
/ Game Killer / Game_Killer.bin / 134.EXAMINE.PAS < prev    next >
Pascal/Delphi Source File  |  1992-07-19  |  4KB  |  146 lines

  1. { I keep forgetting to turn off 286 instruction set.  So, better force it
  2.   off here, before I confuse any more 286 people. }
  3. {$A+}        { speed up us 80x86 guys }
  4. {$B-}        { I dig short circuits }
  5. {$I+}        { pisses people off when they hit a letter, but its better than
  6.                gigo. }
  7. {$G-}        { turn OFF 286 instruction set }
  8.  
  9. program InfoViewer;
  10. { written mid december 1990 to date by woody }
  11. { dos version }
  12.  
  13. uses
  14.   DOS, CRT, graph;
  15.  
  16. {$I headers.inc}
  17.  
  18. var {globals}
  19.   space     : TheVoid;
  20.   BBSname   : string;
  21.   g         : text;
  22.   BaseChanged,
  23.   quit      : boolean;
  24.   distances : distanceArray;
  25.   invdone   : boolean;        { inverses completed already                  }
  26.   inverses  : inversearray;   { sector maps the opposite way                }
  27.   verbose   : boolean;        { text output verbose or terse codes          }
  28.   mono      : boolean;        { for monochrome graphics in printouts        }
  29.   svga      : boolean;        { special for autodetect. Not yet implemented.}
  30.  
  31. {$I QUEUE.INC }
  32. {$I status.inc }
  33. {$I misc.inc }
  34. {$I distance.inc }
  35. {$I viewdos.inc }
  36. {$I textdisp.inc }
  37. {$I portdisp.inc }
  38. {$I notestuf.inc }
  39. {$I basepath.inc }
  40. {$I pathstuf.inc }
  41. {$I sctrlist.inc }
  42. {$I morepair.inc }
  43. {$I teleport.inc }
  44. {$I GSDATA.INC }
  45. {$I busy.inc }
  46. {$I netchang.inc }
  47. {$I config.inc }
  48. {$I busted.inc }
  49. {$I initdefs.inc }
  50.  
  51. procedure menu;
  52. const
  53.   left = 35;
  54.   right = 40;
  55. begin
  56.   writeln('Choose one of ');
  57.   write('<A>dd note':left);
  58.   writeln('<B>usiest ports':right);
  59.   write('<C>lassify ports': left);
  60.   writeln('<D>elete note':right);
  61.   write('<E>vil pair [SxS & xxB]' : left );
  62.   writeln('Closest place to buy <F>ighters':right);
  63.   write('<G>et blocked ports for avoid' : left );
  64.   writeln('<H>ard luck, busted':right);
  65.   write('Note <I>nformation':left);
  66.   writeln('<L>ength & path between two sectors':right);
  67.   write('<M>isc config options':left);
  68.   writeln('<N>earest port':right);
  69.   write('<P>aired ports':left);
  70.   writeln('<Q>uit': right);
  71.   write('Nearest <S>ectors':left);
  72.   writeln('<T>ranswarp menu':right);
  73.   write('Nearest <U>nexplored sectors':left);
  74.   writeln('<V>iew space in graphic format':right);
  75.   write('<W>here is nearest fighter cloud':left);
  76.   writeln('Net change <X>' : right);
  77.   writeln('<Y>ou asked for non-adjacent trading pairs?':left);
  78.   writeln;
  79. end; {menu}
  80.  
  81. function choice : char;
  82. var
  83.   ch : string;
  84. begin
  85.   write('(', BBSName, ') [ABCDEFGHILMNPQRSTUVWXY] Choice?  ');
  86.   readln( ch );
  87.   if ch = '' then
  88.     choice := '?'
  89.   else
  90.     choice := upcase( ch[1] );
  91. end;
  92.  
  93. begin
  94.   Textcolor( LightGray );
  95.   clrScr;
  96.   writeln('Tradewars Data Base Viewer: ', version);
  97.   writeln( author );
  98.   writeln( source );
  99.   writeln;
  100.   Quit := false;
  101.   BaseChanged := false;
  102.   invdone := false;
  103.   SVGA := false;
  104.   GetInits( verbose, mono );
  105.   InitSpace( Space );
  106.   if paramcount > 0 then
  107.     BBSName := paramstr( 1 )
  108.   else
  109.     BBSName := '';
  110.   GetData( Space, BBSName, false );
  111.   menu;
  112.   repeat
  113.     case choice of                               { GJKOZ }
  114.     'A' : AddNote( BaseChanged );
  115.     'B' : BusyPorts;
  116.     'C' : NearestStuff( SpecPort, GetPortType );
  117.     'D' : RemoveNote( BaseChanged );
  118.     'E' : PairSearch( 'SXS', 'XXB' );  {Downer's evil pair}
  119.     'F' : NearestFighters;
  120.     'G' : GetAvoidList;
  121.     'H' : HardLuck;
  122.     'I' : NearestStuff( NoteOnly, 0 );
  123.     'L' : PathLength;
  124.     'M' : ConfigStuff;
  125.     'N' : NearestStuff( PortOnly, 0 );
  126.     'P' : pairPort;
  127.     'Q' : quit := true;
  128.     'S' : NearestStuff( any, 0);
  129.     'T' : TransWarpMenu( BaseChanged );
  130.     'U' : NearestStuff( UnExpOnly, 0);
  131.     'V' : view;
  132.     'W' : NearestStuff( FighterOnly, 0 );
  133.     'X' : HighChange;
  134.     'Y' : PairSearch( 'XSB', 'XBS' );
  135.     else
  136.       menu;
  137.     end; {case}
  138.   until quit;
  139.   if BaseChanged then
  140.     begin
  141.       assign( g, GetNewFileName('File name for new data base? ',
  142.                                   bbsname+'.dat') );
  143.       rewrite( g );
  144.       saveData( g, space );
  145.     end;
  146. end.