SUBROUTINE LOCATE(WHO,L,COMMND,XX,YY) C C LOCATE OBJECT FOR PLAYER C INCLUDE 'TRKCOMMON.FTN' REAL LAUNCH INTEGER SCAN,WHOM,CREW,HYPER,TORPS,WHO LOGICAL*1 THRU,XSHIP,CLOAK,CLON,OK,US,FBASE BYTE MESSAG,INITLS,CLRIT(2),CHAR DATA CLRIT/"33,'K'/ CHARACTER*2 COMMND C C CALL CPOS(L) IOFF=(IUNIV(WHO)-1)*20 IF (IDAMGE(WHO,3).GT.0) WRITE (5,19000) CLRIT 19000 FORMAT (' Scanners damaged - unable to perform scan',2A1) IF (IDAMGE(WHO,3).GT.0) GO TO 20400 LASTD=9999. IF (COMMND(1:2).EQ.'LE') GOTO 24000 IF (COMMND(1:2).EQ.'LF') GOTO 25000 C C LOCATE FRIENDLY STARBASE C DO 20020, II=1,20,2 I = IBASE(WHO,IOFF+II) J = IBASE(WHO,IOFF+II+1) IF (I.EQ.0) GOTO 20020 EDIS = ((XX-I)**2+(YY-J)**2)**.5 IF (EDIS.GE.LASTD) GO TO 20020 LASTD = EDIS IXX = I IYY = J 20020 CONTINUE CALL COURSE (XX,YY,IXX,IYY,EDIR,EDIS) IXX = IXX/10 IYY = IYY/10 WRITE (5,20220) IUNIV(WHO),IXX,IYY,CLRIT 20220 FORMAT (' Nearest friendly starbase is in sector ' 1 ,I1,',',I3,',',I3,2A1) WRITE (5,20221) EDIR,EDIS,CLRIT 20221 FORMAT(' Course ',F5.2,' Distance ',F9.2,' Parsecs',2A1) 20400 GO TO 24400 C C LOCATE NEAREST ENEMY STARBASE C 24000 DO 24010 II=1,8 IF (II.EQ.WHO) GOTO 24010 DO 24020 JJ=1,20,2 I = IBASE(II,IOFF+JJ) J = IBASE(II,IOFF+JJ+1) IF (I.EQ.0) GOTO 24020 EDIS = ((XX-I)**2+(YY-J)**2)**.5 IF (EDIS.GE.LASTD) GO TO 24020 LASTD = EDIS IXX = I IYY = J 24020 CONTINUE 24010 CONTINUE CALL COURSE (XX,YY,IXX,IYY,EDIR,EDIS) IXX = IXX/10 IYY = IYY/10 WRITE (5,24220) IUNIV(WHO),IXX,IYY,CLRIT 24220 FORMAT (' Nearest enemy starbase is in sector ' 1 ,I1,',',I3,',',I3,2A1) WRITE (5,24221) EDIR,EDIS,CLRIT 24221 FORMAT(' Course ',F5.2,' Distance ',F9.2,' Parsecs',2A1) GOTO 24400 C C LOCATE AN ACTIVE FREIGHTER C 25000 IF (FLOAD(IUNIV(WHO),WHO).EQ.0) GOTO 25500 IXX=FXCORD(IUNIV(WHO),WHO) IYY=FYCORD(IUNIV(WHO),WHO) CALL COURSE (XX,YY,IXX,IYY,EDIR,EDIS) IIX=FXDEST(IUNIV(WHO),WHO)/10 IIY=FYDEST(IUNIV(WHO),WHO)/10 WRITE (5,25010) IUNIV(WHO),IXX/10,IYY/10,IIX,IIY,CLRIT 25010 FORMAT (' Freighter is in sector ',I1,',',I3,',',I3, 1 ' Destination sector ',I3,',',I3,2A1) WRITE (5,24221) EDIR,EDIS,CLRIT GOTO 24400 C 25500 WRITE (5,25501) CLRIT 25501 FORMAT (' ** No freighter currently active **',2A1) C 24400 RETURN END