home *** CD-ROM | disk | FTP | other *** search
/ CD PowerPlay 6 / TheCompleteAdventureCollection1995 / CDPP6.ISO / utility / agtsrc / param.pa3 < prev    next >
Encoding:
Text File  |  1989-11-19  |  3.8 KB  |  126 lines

  1.   {$V-}
  2.  
  3.   {PARAM.PA2}
  4.  
  5.   PROCEDURE CheckParams;
  6.  
  7.   VAR NumPara : Integer;
  8.     P, p1, p2, p3, batch_file_name : words;
  9.     fn : Text;
  10.     Spot : Integer;
  11.     {PARAMCOUNT AND PARAMSTR(I..PARAMCOUNT) ARE TURBO FNS}
  12.  
  13.     PROCEDURE Handle_File_Name;
  14.  
  15.     BEGIN                         {PROPER FORM TO CREATE FINAL VERSION}
  16.       p2 := '';
  17.       IF POS(':', p1) <> 0 THEN
  18.         BEGIN
  19.           Spot := POS(':', p1);
  20.           p2 := Copy(p1, 1, Spot); {up to ':'}
  21.           p1 := Copy(p1, Spot+1, 255); {after ':'}
  22.         END;
  23.       WHILE POS('\', p1) <> 0 DO
  24.         BEGIN
  25.           Spot := POS('\', p1);
  26.           p2 := p2+Copy(p1, 1, Spot); {up to '\'}
  27.           p1 := Copy(p1, Spot+1, 255); {after '\'}
  28.         END;
  29.       IF p2 <> '' THEN            {need to change directory}
  30.         BEGIN
  31.           Spot := Length(p2);
  32.           IF p2[Spot] = '\' THEN p2 := Copy(p2, 1, Spot-1); {strip off last '\'}
  33.           {$I-} ChDir(p2);
  34.           IF IoResult <> 0 THEN
  35.             BEGIN
  36.               WriteLn('Cannot find directory: ', p2);
  37.               Halt;
  38.             END;
  39.         END;                      {change directory}
  40.       P := p1;
  41.       Adventure_Name := P;
  42.       batch_file_name := P+'.BAT';
  43.       data_file_name := P+'.DAT';
  44.       message_file_name := P+'.MSG';
  45.       title_file_name := P+'.TTL';
  46.       descr_file_name := P+'.D$$';
  47.       Command_File_Name := P+'.CMD';
  48.       Instruction_File_Name := P+'.INS';
  49.       CreatingFinalVersion := True;
  50.       IF NOT File_Exists(batch_file_name)
  51.       THEN
  52.         BEGIN
  53.           Assign(fn, batch_file_name);
  54.           Rewrite(fn);
  55.   {$IFDEF NormalVersion}
  56.           WriteLn(fn, 'RUN ', P);
  57.   {$ELSE}
  58.           WriteLn(fn, 'RUNB ', P);
  59.   {$ENDIF}
  60.           Close(fn);
  61.         END;
  62.       IF NOT File_Exists(data_file_name)
  63.       THEN
  64.         BEGIN
  65.           WriteLn;
  66.           WriteLn('Data file not present on default drive.');
  67.           WriteLn('You must specify a data file name on the DOS command line.');
  68.   {$IFDEF NormalVersion}
  69.           WriteLn(' (i.e. "COMPILE CRUSADE")');
  70.   {$ELSE}
  71.           WriteLn(' (i.e. "COMPILEB CRUSADE")');
  72.   {$ENDIF}
  73.           WriteLn('Program terminated.');
  74.           Halt;
  75.         END;                      {IF}
  76.     END;                          {Handle_File_Name}
  77.  
  78.   BEGIN
  79.     CreatingFinalVersion := False;
  80.     UsingFinalVersion := False;
  81.     DoingUpperCase := True;
  82.     p1 := '';
  83.     p2 := '';
  84.     p3 := '';
  85.     NumPara := ParamCount;
  86.     IF NumPara >= 1 THEN
  87.       BEGIN
  88.         p1 := ParamStr(1);
  89.         p2 := ParamStr(2);
  90.         Capitalize(p1);
  91.         Capitalize(p2);
  92.       END;
  93.     CASE NumPara OF
  94.       0 : BEGIN
  95.             WriteLn;
  96.             WriteLn('Command format: COMPILE filename');
  97.             WriteLn(' (where "filename" is 1..8 characters; do not',
  98.                     ' specify any file extension.)');
  99.             WriteLn;
  100.             Halt;
  101.           END;
  102.       1 : BEGIN
  103.             IF (p1 = '?') OR (p1 = 'HELP')
  104.             THEN
  105.               BEGIN
  106.                 WriteLn;
  107.                 WriteLn('Command format: COMPILE filename');
  108.                 WriteLn(' (where "filename" is 1..8 characters; do not',
  109.                         ' specify any file extension.)');
  110.                 WriteLn;
  111.                 Halt;
  112.               END
  113.             ELSE Handle_File_Name; {process file name in p1}
  114.           END;                    {CASE 1}
  115.       2 : BEGIN                   {CASE 2}
  116.             IF (p1 = '/B') THEN
  117.               BEGIN
  118.                 p1 := p2;         {swap name to p1}
  119.                 p2 := '/B';       {swap /B to p2}
  120.               END;
  121.             IF (p2 = '/B') THEN DirectVideo := False;
  122.             Handle_File_Name;     {process file name in p1}
  123.           END;                    {CASE 2}
  124.     END;                          {CASE}
  125.   END;                            {CHECKPARAMS}
  126.