SUBROUTINE AUTCNF(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/ INTEGER MAXDIM(5) DATA MAXDIM/240,175,145,125,110/ 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 NUMBER OF UNIVERSES C READ (2,2) IUNIMX,CMTS IF (IUNIMX.LT.0.OR.IUNIMX.GT.5) OK=.FALSE. IF (.NOT.OK) GOTO 15000 C C SIZE OF THE UNIVERSES C READ (2,2) IMAXX,CMTS IF (IMAXX.LT.50.OR.IMAXX.GT.MAXDIM(IUNIMX)) OK=.FALSE. IF (.NOT.OK) GOTO 15000 IMAXY=IMAXX 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 TRACTOR BEAM DRAIN C READ (2,2) ICNTRL(2),CMTS IF (ICNTRL(2).LT.10.OR.ICNTRL(2).GT.200) 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 DRAIN FOR HYPERSPACE JUMPING C READ (2,1) RCNTRL(6),CMTS IF (RCNTRL(6).LT.0.OR.RCNTRL(6).GT.3500) OK=.FALSE. C C NUMBER OF BLACK HOLES C DO 10500 I=1,IUNIMX READ (2,2) IHOLE(I),CMTS IF (IHOLE(I).LT.1.OR.IHOLE(I).GT.8) GOTO 102 C C LOOP TO GET SPEED OF ALL BLACK HOLES C DO 3, J=1,IHOLE(I) READ (2,1) HWARP(I,J),CMTS IF (HWARP(I,J).LT.0.OR.HWARP(I,J).GT.8) OK=.FALSE. 3 CONTINUE 10500 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 RANDOM (?) INTEGER C READ (2,2) I1,CMTS 15000 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