SUBROUTINE ANLVFY C C VERIFY THE UNIVERSE FOR DUMPER C INCLUDE 'TRKCOMMON.FTN' REAL LAUNCH INTEGER SCAN,WHOM,CREW,HYPER,TORPS,FLAG,ERRCNT,VA LOGICAL*1 THRU,XSHIP,CLOAK,CLON,FBASE,OK BYTE MESSAG,INITLS,CLRIT(2),CMD,CHAR CHARACTER*132 OUTLIN C C 5000 DO 15000 KK=1,IUNIMX ENCODE (33,900,OUTLIN(1:1)) KK 900 FORMAT ('Verification pass for universe #',I1) WRITE (1,10001) OUTLIN 10001 FORMAT (/,' ',A132,/) CALL CLROUT(OUTLIN) C IOFF=(KK-1)*20 ERRCNT = 0 DO 5001, I=1,8 DO 5001, J=1,20,2 IF (IBASE(I,IOFF+J).EQ.0.AND.IBASE(I,IOFF+J+1).EQ.0) GOTO 5001 CALL UNIV(IBASE(I,IOFF+J),IBASE(I,IOFF+J+1),CHAR,KK,VA) IF (CHAR.EQ.'B') GOTO 5001 WRITE (1,5002) I,IBASE(I,IOFF+J),IBASE(I,IOFF+J+1),CHAR,VA 5002 FORMAT (' User ',I1,' lost starbase at ',I3,',',I3, 1 ' char = ',A1,' VA = ',O6.6) ERRCNT=ERRCNT+1 5001 CONTINUE C C Verify any freighters C DO 6001, I=1,8 IF (FLOAD(KK,I).EQ.0) GOTO 6001 IX=FXCORD(KK,I) IY=FYCORD(KK,I) CALL UNIV(IX,IY,CHAR,KK,VA) IF (CHAR.EQ.'F') GOTO 6001 WRITE (1,6002) I,IX,IY,CHAR,VA 6002 FORMAT (' User ',I1,' lost freighter at ',I3,',',I3, 1 ' Char = ',A1,' VA = ',O6.6) ERRCNT=ERRCNT+1 6001 CONTINUE DO 5003, I=1,IHOLE(KK) C C Verify the black holes, and clean-up C IX=HX(KK,I) IY=HY(KK,I) CALL UNIV(IX,IY,CHAR,KK,VA) IF (CHAR.EQ.'#') GOTO 5003 WRITE (1,5004) I,IX,IY,CHAR,VA 5004 FORMAT (' Lost black hole #',I1,' at ',I3,',',I3, 1 ' char = ',A1,' VA = ',O6.6) ERRCNT=ERRCNT+1 5003 CONTINUE C C Search for extraneous bases, and black holes C DO 5100, I=1,IMAXX DO 5100, J=1,IMAXY CALL UNIV(I,J,CHAR,KK,VA) IF (CHAR.NE.'#') GOTO 5007 C C Verify this black hole C OK = .FALSE. DO 5005, L=1,IHOLE(KK) IX=HX(KK,L) IY=HY(KK,L) IF (IX.EQ.I.AND.IY.EQ.J) OK=.TRUE. 5005 CONTINUE IF (OK) GOTO 5007 WRITE (1,5006) I,J,VA 5006 FORMAT (' Extraneous black hole at ',I3,',',I3,' VA = ',O6.6) ERRCNT=ERRCNT+1 GOTO 5010 5007 CALL UNIV(I,J,CHAR,KK,VA) IF (CHAR.NE.'B') GOTO 5010 C C IT'S A BASE C OK=.FALSE. DO 5008, K=1,8 DO 5008, L=1,20,2 IF (IBASE(K,IOFF+L).EQ.I.AND.IBASE(K,IOFF+L+1).EQ.J) OK=.TRUE. 5008 CONTINUE IF (OK) GOTO 5010 WRITE (1,5009) I,J,VA 5009 FORMAT (' Extraneous star base at ',I3,',',I3,' VA = ',O6.6) ERRCNT=ERRCNT+1 5010 CALL UNIV(I,J,CHAR,KK,VA) IF (CHAR.EQ.'^'.OR.CHAR.EQ.'+'.OR.CHAR.EQ.'@'.OR.CHAR.EQ.'*') 1 GOTO 5100 C C This should be a ship or freighter to verify ... C CALL UNIV(I,J,CHAR,KK) IF (CHAR.LT.'1'.OR.CHAR.GT.'8') GOTO 5050 DECODE (1,5075,CHAR) ISH 5075 FORMAT (I1) K=XCORD(ISH) L=YCORD(ISH) IF (K.EQ.I.AND.L.EQ.J.AND.KK.EQ.IUNIV(ISH)) GOTO 5100 WRITE (1,5011) CHAR,I,J,VA 5011 FORMAT (' Extraneous ship #',A1,' at ',I3,',',I3,' VA = ',O6.6) ERRCNT=ERRCNT+1 GOTO 5100 C C Must be a freighter C 5050 IF (CHAR.NE.'F') GOTO 5100 DO 5051 II=1,8 IF (FLOAD(KK,II).EQ.0) GOTO 5051 IX=FXCORD(KK,II) IY=FYCORD(KK,II) IF (IX.EQ.I.AND.IY.EQ.J) GOTO 5100 5051 CONTINUE WRITE (1,5052) I,J,VA 5052 FORMAT (' Extraneous freighter at ',I3,',',I3,' VA = ',O6.6) ERRCNT=ERRCNT+1 C 5100 CONTINUE C 15000 CONTINUE RETURN END