SUBROUTINE TKCNF(OK,STARS,BASES,N) C C Subroutine to auto-configue the TREK game C C The command file may be in the format; C C value,description C INCLUDE 'TRKCOMMON.FTN' REAL LAUNCH INTEGER SCAN,WHOM,CREW,HYPER,TORPS LOGICAL*1 THRU,XSHIP,CLOAK,CLON,FBASE,OK BYTE MESSAG,INITLS,CLRIT(2),CMTS(80),FNAME(30),TNAME(30) DATA CLRIT/"33,'K'/ DATA TNAME/'T','R','E','K','.','C','N','F',22*0/ C C WRITE (5,51) 51 FORMAT ('$Enter configuration file name [DEF = TREK.CNF] :') ILEN=30 CALL RDLINE (FNAME,ILEN,0) IF (ILEN.GT.0) GOTO 20 DO 21 J=1,8 FNAME(J)=TNAME(J) 21 CONTINUE ILEN=8 20 FNAME(ILEN+1) = 0 CALL ERRSET(29,.TRUE.,.FALSE.,.TRUE.,.FALSE.) OPEN (UNIT=2, FILE=FNAME,READONLY,TYPE='OLD',ERR=100) C C STAR DENSITY C READ (2,1) STARS,CMTS 1 FORMAT (F10.0,80A1) IF (STARS.LT.0.OR.STARS.GT.15) OK=.FALSE. C C NUMBER OF BASES/PLAYER C READ (2,1) BASES,CMTS IF (BASES.LT.0.OR.BASES.GT.10) OK=.FALSE. IF (OK) ICNTRL(1)=BASES C C NUMBER OF RANDOM JUMP POINTS C READ (2,2) N,CMTS 2 FORMAT (I6,80A1) IF (N.LT.0.OR.N.GT.10) OK=.FALSE. C C DRAIN FOR HOMING C READ (2,1)RCNTRL(7),CMTS IF (RCNTRL(7).LT.0.OR.RCNTRL(7).GT.1000) OK=.FALSE. C C DRAIN FOR CLOAKING C READ (2,1) RCNTRL(8),CMTS IF (RCNTRL(8).LT.0.OR.RCNTRL(8).GT.2000) OK=.FALSE. C C NUMBER OF BLACK HOLES C READ (2,2) IHOLE,CMTS IF (IHOLE.LT.1.OR.IHOLE.GT.8) GOTO 102 C C LOOP TO GET SPEED OF ALL BLACK HOLES C DO 3, I=1,IHOLE READ (2,1) HWARP(I),CMTS IF (HWARP(I).LT.0.OR.HWARP(I).GT.8) OK=.FALSE. 3 CONTINUE C C INITIAL STARBASE SHIELD STRENGTH C READ (2,1) RCNTRL(1),CMTS IF (RCNTRL(1).LT.0.OR.RCNTRL(1).GT.10000.) OK = .FALSE. C C MAXIMUM ACTIVE HOMERS C READ (2,2) ICNTRL(3),CMTS IF (ICNTRL(3).LT.2.OR.ICNTRL(3).GT.15) OK=.FALSE. C C HOMER ALLOCATION C READ (2,2) ICNTRL(4),CMTS IF (ICNTRL(4).LT.2.OR.ICNTRL(4).GT.15) OK=.FALSE. C C REGULAR TORPEDO ALLOCATION C READ (2,2) ICNTRL(5),CMTS IF (ICNTRL(5).LT.2.OR.ICNTRL(5).GT.15) OK=.FALSE. C C ANTI-MATTER POD ALLOCATION C READ (2,2) ICNTRL(6),CMTS IF (ICNTRL(6).LT.2.OR.ICNTRL(6).GT.10) OK=.FALSE. C C DAMAGE REPAIR FREQUENCY C READ (2,2) ICNTRL(7),CMTS IF (ICNTRL(7).LT.3.OR.ICNTRL(7).GT.15) OK=.FALSE. C C TRACTOR BEAM DRAIN C READ (2,2) ICNTRL(2),CMTS IF (ICNTRL(2).LT.10.OR.ICNTRL(2).GT.200) OK=.FALSE. C C RANDOM (?) INTEGER C READ (2,2) I1,CMTS CLOSE (2) GOTO 110 C 100 WRITE (5,101) (FNAME(I),I=1,ILEN) 101 FORMAT (' Unable to open file ',30A1) 102 OK=.FALSE. CLOSE(2) C 110 RETURN END