SUBROUTINE CNGSHP(WHO) C C CHANGE SHIP DATA ON THE FLY FOR TRDEMO C INCLUDE 'TRKCOMMON.FTN' REAL LAUNCH INTEGER SCAN,WHOM,CREW,HYPER,TORPS,WHO LOGICAL*1 THRU,XSHIP,CLOAK,CLON,OK,FBASE BYTE MESSAG,INITLS,LASTLN(11),YN,CHAR DATA LASTLN/"33,'[','2','2',';','1','H',"33,'[','0','J'/ C C 10000 CALL PAINT(WHO) 15000 WRITE (5,10001) LASTLN 10001 FORMAT (' ',11A1,'Enter selection (99 to end) > ',$) READ (5,10002,END=32000) ISELCT 10002 FORMAT (I2) IF (ISELCT.EQ.99) GOTO 32000 IF (ISELCT.LT.1.OR.ISELCT.GT.20) GOTO 15000 GOTO (10010,10020,10030,10040,10050,10060,10070,10080,10090, 1 10100,10110,10120,10130,10140,10150,10160,10170,10180, 2 10190,10200), ISELCT C C 10010 IF (.NOT.CLON(WHO)) GOTO 10015 CLON(WHO) = .FALSE. CLOAK(WHO) = .FALSE. GOTO 10016 10015 CLON(WHO) = .TRUE. CLOAK(WHO) = .TRUE. 10016 GOTO 10000 C C 10020 WRITE (5,10021) 10021 FORMAT ('$Enter new X-coordinate > ') READ (5,10022) TEMP 10022 FORMAT (F10.0) IF (TEMP.EQ.0) GOTO 10000 IX = TEMP IY = YCORD(WHO) CALL UNIV(IX,IY,CHAR,IUNIV(WHO)) IF (CHAR.NE.'.') GO TO 10020 ENCODE(1,10023,CHAR) WHO 10023 FORMAT (I1) CALL UNIVIN(IX,IY,CHAR,IUNIV(WHO)) IX = XCORD(WHO) CALL UNIVIN(IX,IY,'.',IUNIV(WHO)) IX = TEMP XCORD(WHO) = IX XCORD(WHO) = XCORD(WHO)+.5 GOTO 10000 C C 10030 WRITE (5,10031) 10031 FORMAT ('$Enter new warp factor > ') READ (5,10032) WARP(WHO) 10032 FORMAT (F10.0) GOTO 10000 C C 10040 IF (.NOT.DOCKED(WHO)) GOTO 10041 DOCKED(WHO)=.FALSE. GOTO 10042 10041 DOCKED(WHO)=.TRUE. 10042 GOTO 10000 C C 10050 WRITE (5,10051) 10051 FORMAT ('$Enter new Y-coordinate > ') READ (5,10052) TEMP 10052 FORMAT (F10.0) IF (TEMP.EQ.0) GOTO 10000 IX = XCORD(WHO) IY = TEMP CALL UNIV(IX,IY,CHAR,IUNIV(WHO)) IF (CHAR.NE.'.') GO TO 10060 ENCODE(1,10053,CHAR) WHO 10053 FORMAT (I1) CALL UNIVIN(IX,IY,CHAR,IUNIV(WHO)) IY = YCORD(WHO) CALL UNIVIN(IX,IY,'.',IUNIV(WHO)) IY = TEMP YCORD(WHO) = IY YCORD(WHO) = YCORD(WHO)+.5 GOTO 10000 C C 10060 WRITE (5,10061) 10061 FORMAT ('$Enter new course > ') READ (5,10062) VALUE 10062 FORMAT (F10.0) DIR(WHO) = (15-VALUE)*30 IF (VALUE.LT.3) DIR(WHO) = (3-VALUE)*30 GOTO 10000 C C 10070 WRITE (5,10071) 10071 FORMAT ('$Enter new hyperspace setting (port,univ) > ') READ (5,10072) (HYPER(WHO,I),I=1,2) 10072 FORMAT (2I1) GOTO 10000 C C 10080 WRITE (5,10081) 10081 FORMAT ('$Enter new number of non-homing torpedoes > ') READ (5,10082) TORPS(WHO) 10082 FORMAT (I2) GOTO 10000 C C 10090 WRITE (5,10091) 10091 FORMAT ('$Enter new number of homing torpedoes > ') READ (5,10092) IHOME(WHO) 10092 FORMAT (I2) GOTO 10000 C C 10100 WRITE (5,10101) 10101 FORMAT ('$Enter new energy level > ') READ (5,10102) ENERGY(WHO) 10102 FORMAT (I6) GOTO 10000 C C 10110 WRITE (5,10111) 10111 FORMAT ('$Enter new shield strength > ') READ (5,10112) SHIELD(WHO) 10112 FORMAT (F10.0) GOTO 10000 C C 10120 WRITE (5,10121) 10121 FORMAT ('$Number of pods can''t be changed - to go on') READ (5,10122) AAAA 10122 FORMAT (A4) GOTO 10000 C C 10130 WRITE (5,10131) 10131 FORMAT ('$Do you want to change damage for all components? ') READ (5,10132) YN 10132 FORMAT (A1) IF (YN.EQ.'Y') GOTO 10500 WRITE (5,10133) 10133 FORMAT ('$Enter new phaser damage > ') READ (5,10134) IDAMGE(WHO,1) 10134 FORMAT (I3) GOTO 10000 C C 10140 WRITE (5,10141) 10141 FORMAT ('$Enter new navagation-computer damage > ') READ (5,10134) IDAMGE(WHO,5) GOTO 10000 C C 10150 WRITE (5,10151) 10151 FORMAT ('$Enter new torpedo damage > ') READ (5,10134) IDAMGE(WHO,2) GOTO 10000 C C 10160 WRITE (5,10161) 10161 FORMAT ('$Enter new warp-drive damage > ') READ (5,10134) IDAMGE(WHO,6) GOTO 10000 C C 10170 WRITE (5,10171) 10171 FORMAT ('$Enter new scanner damage > ') READ (5,10134) IDAMGE(WHO,3) GOTO 10000 C C 10180 WRITE (5,10181) 10181 FORMAT ('$Enter new anti-matter equipment damage > ') READ (5,10134) IDAMGE(WHO,7) GOTO 10000 C C 10190 WRITE (5,10191) 10191 FORMAT ('$Enter new cloaking device damage > ') READ (5,10134) IDAMGE(WHO,4) GOTO 10000 C C 10200 WRITE (5,10201) 10201 FORMAT ('$Enter new shield damage > ') READ (5,10134) IDAMGE(WHO,8) GOTO 10000 C C 10500 WRITE (5,10501) 10501 FORMAT ('$Enter new component damage > ') READ (5,10134) IDAM DO 10502 II=1,8 IDAMGE(WHO,II) = IDAM 10502 CONTINUE GOTO 10000 C C 32000 RETURN END