SUBROUTINE TORPI C C * FIRE TORPEDOES C INCLUDE 'TRKCOMMON.FTN' REAL LAUNCH INTEGER SCAN,WHOM,CREW,HYPER,TORPS LOGICAL*1 THRU,XSHIP,CLOAK,CLON,FBASE COMMON /TORPES/ XHOM(8,15),YHOM(8,15), 1 TLOCS(8,15,3),TDIR(8,15) BYTE MESSAG,INITLS,CHAR C C DO 10001 I=1,8 IF (LAUNCH(I).LT.0) GOTO 10003 CALL MOVE(XCORD(I),YCORD(I),X1,Y1,LAUNCH(I),10.,CHAR,IMAXX,IMAXY, 1 IUNIV(I)) IX=X1 IY=Y1 KX=XCORD(I) KY=YCORD(I) C C * MAKE SURE IT MOVED OUT OF THE FIRER'S SQUARE C IF (KX.NE.IX.OR.KY.NE.IY) GOTO 10006 CALL MOVE(X1,Y1,X,Y,LAUNCH(I),10.,CHAR,IMAXX,IMAXY,IUNIV(I)) GO TO 10007 10006 X=X1 Y=Y1 10007 IX=X IY=Y IF (CHAR.NE.'.') GOTO 10009 C C DIDN'T HIT ANYTHING C CALL UNIVIN(IX,IY,'+',IUNIV(I)) DO 10500 J=1,15 IF (TDIR(I,J).LT.0) GOTO 10501 10500 CONTINUE 10501 TLOCS(I,J,1)=X TLOCS(I,J,2)=Y TLOCS(I,J,3)=IUNIV(I) TDIR(I,J)=LAUNCH(I) GO TO 10010 C C * HIT SOMETHING C 10009 CALL THIT(I,IX,IY,CHAR,LAUNCH(I),500.,IUNIV(I)) C 10010 LAUNCH(I)=-1. IF (CLON(I).AND..NOT.CLOAK(I).AND.IDAMGE(I,4).EQ.0) CLOAK(I)=.TRUE. 10003 CONTINUE 10001 CONTINUE RETURN END