SUBROUTINE ANLSHP(ISEL) C C PROVIDE ANALYSIS OF SHIPS FOR MTREK DUMPER PROGRAM C INCLUDE 'TRKCOMMON.FTN' REAL LAUNCH INTEGER SCAN,WHOM,CREW,HYPER,TORPS,WHO LOGICAL*1 THRU,XSHIP,CLOAK,CLON,OK,FBASE,ALL BYTE MESSAG,INITLS,CLRIT(2),TMPBYT CHARACTER*132 OUTLIN, CHAR*1 EQUIVALENCE(CHAR,TMPBYT) C C WRITE (5,10601) 10601 FORMAT (' Performing ship analysis') ISHP=9 IF (ISEL.EQ.3) GOTO 10600 10000 WRITE (5,10001) 10001 FORMAT (' Enter ship to analyze, 0 to end, 9 for all : ',$) READ (5,10002) ISHP 10002 FORMAT (I2) IF (ISHP.EQ.0) GOTO 20000 10600 ALL=.FALSE. IF (ISHP.EQ.9) ALL=.TRUE. IF (ISHP.EQ.9) ISHP=0 C C ANALYZE THE SHIP(S) C 10003 IF (ALL) ISHP=ISHP+1 WRITE (1,10004) 10004 FORMAT(1H1) OUTLIN(1:19)='Analysis for ship #' ENCODE (1,10005,OUTLIN(20:20)) ISHP 10005 FORMAT (I1) WRITE (1,10006) OUTLIN 10006 FORMAT (' ',A80) CALL CLROUT(OUTLIN) C IF (XSHIP(ISHP)) OUTLIN(1:6)='ACTIVE' IF (.NOT.XSHIP(ISHP)) OUTLIN(1:8)='INACTIVE' C IF (XSHIP(ISHP)) OUTLIN(15:22)='OWNER = ' TMPBYT=INITLS(ISHP,1) OUTLIN(23:23)=CHAR TMPBYT=INITLS(ISHP,2) OUTLIN(24:24)=CHAR C ENCODE (26,10007,OUTLIN(30:56)) IUNIV(ISHP),XCORD(ISHP),YCORD(ISHP) 10007 FORMAT('UNIV,X,Y = ',I1,',',F6.2,',',F6.2) C ENCODE (14,10009,OUTLIN(60:60)) ENERGY(ISHP) 10009 FORMAT ('ENERGY = ',I5) C ENCODE (15,10008,OUTLIN(78:78)) SHIELD(ISHP) 10008 FORMAT ('SHIELDS = ',I5) C ENCODE (11,10010,OUTLIN(95:95)) WARP(ISHP) 10010 FORMAT ('WARP = ',F4.2) C R=DIR(ISHP) IF (R.GT.90.) V=(450.-R)/30. IF (R.LE.90.) V=(90.-R)/30. ENCODE (15,10011,OUTLIN(115:115)) V 10011 FORMAT ('COURSE = ',F6.2) C WRITE (1,10012) OUTLIN 10012 FORMAT (/,' ',A132) CALL CLROUT(OUTLIN) C OUTLIN(1:6)='DOCKED' IF (DOCKED(ISHP)) OUTLIN(8:8)='Y' IF (.NOT.DOCKED(ISHP)) OUTLIN(8:8)='N' C OUTLIN(12:21)='TRACTORS =' ENCODE (1,10013,OUTLIN(23:23)) ITRAC(ISHP) 10013 FORMAT (I1) C OUTLIN(27:34)='HOMING =' ENCODE (1,10013,OUTLIN(36:36)) IHOME(ISHP) C OUTLIN(42:52)='PORT/UNIV =' ENCODE (3,10014,OUTLIN(54:54)) HYPER(ISHP,1),HYPER(ISHP,2) 10014 FORMAT (I1,'/',I1) C IACT=0 DO 10016 I=1,ICNTRL(4) IF (LHOM(ISHP,I).NE.0) IACT=IACT+1 10016 CONTINUE OUTLIN(60:81)='HOMERS (LEFT/ACTIVE) =' ENCODE (5,10015,OUTLIN(83:83)) NHOM(ISHP),IACT 10015 FORMAT (I2,'/',I2) C OUTLIN(91:110)='REG TORPEDOES LEFT =' ENCODE (2,10017,OUTLIN(112:112)) TORPS(ISHP) 10017 FORMAT (I2) C WRITE (1,10018) OUTLIN 10018 FORMAT (/,' ',A132) CALL CLROUT(OUTLIN) C OUTLIN(1:26)='DAMAGE CONTROL INFORMATION' WRITE (1,10018) OUTLIN CALL CLROUT(OUTLIN) ENCODE (17,10019,OUTLIN(10:10)) IDAMGE(ISHP,1) 10019 FORMAT ('PHASERS ',I3,'%') ENCODE (17,10020,OUTLIN(31:31)) IDAMGE(ISHP,2) 10020 FORMAT ('TORPEDOES ',I3,'%') ENCODE (17,10021,OUTLIN(52:52)) IDAMGE(ISHP,3) 10021 FORMAT ('SCANNERS ',I3,'%') ENCODE (17,10022,OUTLIN(83:83)) IDAMGE(ISHP,4) 10022 FORMAT ('CLOAKING ',I3,'%') WRITE (1,10018) OUTLIN CALL CLROUT(OUTLIN) ENCODE (17,10023,OUTLIN(10:10)) IDAMGE(ISHP,5) 10023 FORMAT ('NAV-COMPUTER ',I3,'%') ENCODE (17,10024,OUTLIN(31:31)) IDAMGE(ISHP,6) 10024 FORMAT ('WARP-DRIVE ',I3,'%') ENCODE (17,10025,OUTLIN(52:52)) IDAMGE(ISHP,7) 10025 FORMAT ('ANTI-MATTER ',I3,'%') ENCODE (17,10026,OUTLIN(83:83)) IDAMGE(ISHP,8) 10026 FORMAT ('SHIELDS ',I3,'%') WRITE (1,10018) OUTLIN CALL CLROUT(OUTLIN) C CALL ANLBAS(ISHP) CALL ANLFRT(ISHP) CALL ANLDSP(ISHP) C IF (ALL.AND.ISHP.LT.8) GOTO 10003 IF (.NOT.ALL) GOTO 10000 C 20000 RETURN END