home *** CD-ROM | disk | FTP | other *** search
/ Game Killer / Game_Killer.bin / 095.PARSEETH.INC < prev    next >
Text File  |  1992-07-04  |  3KB  |  105 lines

  1. procedure EtherprobeEntered( s : string; var m : scannermap );
  2. var
  3.   currsector   : sector;
  4.   error        : integer;
  5. begin
  6.   s := copy( s, 11, 255 );
  7.   s := copy( s, 1, pos(' ', s) - 1);
  8.   val( s, currsector, error );
  9.   if error <> 0 then
  10.     begin
  11.       writeln('programmer error (sigh)');
  12.       writeln('etherprobe entered called with "', s, '"');
  13.       readln;
  14.       halt;
  15.     end;
  16.   if m[ currsector ] = open then
  17.     begin
  18.       m[ currsector ] := scanned;
  19.       writeln('probed ', currsector );
  20.     end;
  21. end;
  22.  
  23. procedure AutowarpedThrough( s : string; var m : scannermap );
  24. var
  25.   currsector   : sectorindex;
  26.   error, dummy : integer;
  27. begin
  28.   s := copy( s, 23, 255 );
  29.   val( s, currsector, error );
  30.   if error <> 0 then
  31.     begin
  32.       writeln('programmer error (sigh)');
  33.       writeln('autowarped through called with "', s, '"');
  34.       readln;
  35.       halt;
  36.     end;
  37.   if m[ currsector ] <> visited then
  38.     begin
  39.       write('visited ', currsector );
  40.       scan( currsector, m, dummy );
  41.       writeln;
  42.     end;
  43. end;
  44.  
  45. procedure WarpedThrough( s : string; var m : scannermap );
  46. var
  47.   currsector   : sectorindex;
  48.   error, dummy : integer;
  49. begin
  50.   s := copy( s, 18, 255 );
  51.   s := copy( s, 1, length(s) - 1);
  52.         { kill extra space }
  53.   val( s, currsector, error );
  54.   if error <> 0 then
  55.     begin
  56.       writeln('programmer error (sigh)');
  57.       writeln('Warped Through called with "', s, '"');
  58.       readln;
  59.       halt;
  60.     end;
  61.   if m[ currsector ] <> visited then
  62.     begin
  63.       write('visited ', currsector );
  64.       scan( currsector, m, dummy );
  65.       writeln;
  66.     end;
  67. end;
  68.  
  69. procedure parselog( var log : text; var map : scannermap );
  70. { log is an ascii capture.  Look for certain strings, and update map. }
  71. var
  72.   line : string;
  73. begin
  74.   while not eof( log ) do
  75.     begin
  76.       readln( log, line );
  77.       if pos( 'Sector  :', line) = 1 then
  78.         EtherprobeEntered( line, map )
  79.       else if pos('Auto Warping to sector', line) = 1 then
  80.         AutowarpedThrough( line, map )
  81.       else if pos('Warping to Sector',line) = 1 then
  82.         WarpedThrough( line, map );
  83.     end; {while}
  84. end; {parse}
  85.  
  86. procedure ParseCapturedText;
  87. { the user has stored a log file, i.e. ascii capture of output from the
  88.   game.  We are going to read info from it to develop a map. }
  89. var
  90.   m  : scannerMap;
  91.   ch : char;
  92.   f  : text;
  93. begin
  94.   write('Start with <F>resh map, or <R>ead in map from disk?  ');
  95.   readln( ch );
  96.   if upcase( ch ) = 'R' then
  97.     InitMapFromDisk( m )
  98.   else
  99.     InitToOpen( m );
  100.   assign( f, GetOldFileName( 'Name of captured text file? ',
  101.          BBSname + '.ETH'));
  102.   reset( f );
  103.   parselog( f, m );
  104.   saveMapToDisk( m );
  105. end;