SUBROUTINE THIT(I,IX,IY,CHAR,D,E,IUN) C C * HANDLE TORPEDO HITS C INCLUDE 'TRKCOMMON.FTN' REAL LAUNCH INTEGER SCAN,WHOM,CREW,HYPER,TORPS LOGICAL*1 THRU,XSHIP,CLOAK,CLON,FBASE,US,DESTRY COMMON /TORPES/ XHOM(8,15),YHOM(8,15), 1 TLOCS(8,15,3),TDIR(8,15) BYTE MESSAG,INITLS,CHAR C C 10002 IF (CHAR.EQ.'H'.OR.CHAR.EQ.'R') GO TO 10003 IF (CHAR.LT.'1'.OR.CHAR.GT.'8') GO TO 10006 C C * TORPEDO HIT ON SHIP C DECODE (1,10008,CHAR) K 10008 FORMAT (I1) IF (.NOT.XSHIP(K)) GOTO 10009 10011 IF (DOCKED(K)) GOTO 10003 CALL DAMAGE (K,E,D) SCORE(I)=SCORE(I)+E CALL SENT(K,4) CALL SENT(I,5) IF (ENERGY(K).GT.0) GOTO 10003 CALL RESET(K) CALL SENT(I,22) SCORE(I)=SCORE(I)+2000. GO TO 10003 10009 CALL SENT(I,21) GO TO 10003 10006 IF (CHAR.NE.'*') GO TO 10015 C C * TORPEDO HIT ON STAR C CALL SENT(I,13) GO TO 10003 10015 IF (CHAR.NE.'B') GO TO 10017 C C * TORPEDO HIT ON BASE C US = .FALSE. IOFF=(IUN-1)*20 DO 20000 III=1,20,2 IF (IX.EQ.IBASE(I,IOFF+III).AND.IY.EQ.IBASE(I,IOFF+(III+1))) 1 US = .TRUE. 20000 CONTINUE IF (.NOT.US) GOTO 10003 CALL SENT(I,12) SCORE(I)=SCORE(I)-200. GO TO 10003 10017 IF (CHAR.NE.'+'.AND.CHAR.NE.'^') GO TO 10019 C C * TORPEDO HIT ON TORPEDO C CALL SENT(I,20) CALL UNIVIN(IX,IY,'.',IUN) GO TO 10003 10019 IF (CHAR .NE. '@') GO TO 10021 C C * TORPEDO HIT ON ANTI-MATTER POD C CALL SENT(I,26) CALL UNIVIN(IX,IY,'.',IUN) GO TO 10003 C C * TORPEDO HIT ON FREIGHTER C 10021 IF (CHAR.NE.'F') GOTO 10023 DO 10022, II = 1,8 IF (FLOAD(IUN,II).EQ.0) GOTO 10022 IIX = FXCORD(IUN,II) IIY = FYCORD(IUN,II) IF (IX.NE.IIX.OR.IY.NE.IIY) GOTO 10022 C C FOUND THE OWNER C K = II IF (FNEAR(IUN,II)) GOTO 10011 CALL FRDAM(II,DESTRY,E,IUN) IF (.NOT.DESTRY) CALL SENT (II,37) IF (.NOT.DESTRY) GOTO 10003 SCORE (I) = SCORE(I) + 500 CALL SENT(II,39) FLOAD(IUN,II) = 0 GOTO 10023 10022 CONTINUE C CALL VFY (4) C 10023 CALL UNIV (IX,IY,'.',IUN) 10003 CONTINUE RETURN END