SUBROUTINE COURSE (XX,YY,IX,IY,EDIR,EDIS) C C ROUTINE TO CALCULATE DISTANCE AND COURSE TO AN OBJECT. C XX -> X-COORD OF SHIP IX -> X-COORD OF OBJECT C YY -> Y-COORD OF SHIP IY -> Y-COORD OF OBJECT C EDIR -> DIRECTION TO OBJ EDIS -> DISTANCE TO OBJECT C INCLUDE 'TRKCOMMON.FTN' REAL LAUNCH INTEGER SCAN,WHOM,CREW,HYPER,TORPS LOGICAL*1 THRU,XSHIP,CLOAK,CLON,FBASE BYTE MESSAG,INITLS REAL D1(4) C X1=IX IF (X1.GE.IMAXX/2) GO TO 10174 X2=X1+IMAXX GO TO 10175 10174 X2=X1-IMAXX 10175 Y1=IY IF (Y1.GE.IMAXY/2) GO TO 10177 Y2=Y1+IMAXY GO TO 10178 10177 Y2=Y1-IMAXY 10178 D1(1)=((XX-X1)**2 + (YY-Y1)**2)**.5 D1(2)=((XX-X1)**2 + (YY-Y2)**2)**.5 D1(3)=((XX-X2)**2 + (YY-Y1)**2)**.5 D1(4)=((XX-X2)**2 + (YY-Y2)**2)**.5 IT=1 DO 10181 J=2,4 IF (D1(J).GE.D1(IT)) GO TO 10181 IT=J 10181 CONTINUE D=D1(IT) 10188 IF (IT.LT.1.OR.IT.GT.4) GO TO 10189 GO TO (10191,10193,10195,10194), IT 10191 YD=Y1 XD=X1 GO TO 10189 10193 YD=Y2 XD=X1 GO TO 10189 10195 YD=Y1 XD=X2 GO TO 10189 10194 YD=Y2 XD=X2 10189 EDIS=D EDIR=ATAN2((YD-YY),(XD-XX))*57.2952 IF (EDIR.LT.0) EDIR=EDIR+360 IF (EDIR.LE.90) EDIR = (90-EDIR)/30 IF (EDIR.GT.90) EDIR=(450.-EDIR)/30. RETURN END