C C C ****************************************** C * * C * SUBROUTINE TO FINISH CAPTAIN'S LOG * C * * C ****************************************** C SUBROUTINE FINLOG(TM,RATING) COMMON QUAD(8,8),SECT(10,10),NGAL(8,8),K(7,5),STATUS(13),R1,C1,R,C &,H1,POW,SHLD(5),NTORP,A,B,H(7),N1,N2,N3,N4,N5,N6,II,JJ,RANK,ITR(4) COMMON/MISC1/ICAPV(5),M1,M2,DATE,IDLN,BEARNG,NCAS(2),CMD,IG2,NPRIS &,IBELL COMMON/MISC2/NPROB,L5,L8,GASP,ITASK,SDATE,AFILE(4),CFILE(4),DTLSTH COMMON/RATNG/NBASD,NRESC,NFRES,NROMD,NCAPAL,NPRTKN COMMON/WRDS/COND,KL,RM,GRN,RED,DCKD,DEST(2),DISAB(2),SHIP(16) COMMON/ALPHA/ALPH(30) COMMON/TESTS1/TROM1,TROM2,TDISAB,TDEST,TWON,TLOST,TRESC,TALTOW, &TBOFF,TALERT,TLOOS,TBALEN,TALSD,TINTRD COMMON/TESTS2/TNEW,TTMOUT,TOVER,TSHLD,TBASLO,TSLFDS,TWARN,THELLO, &TBOSS COMMON/PERS/NAME1(16),NPL,NG,AVGTOT,PSWRD,IRNK,NSHP,IUIC(4) C INTEGER SECT,QUAD,R1,C1,R,C,SHLD,H1,A,B,POW,H,CMD REAL*8 KL,RM,GRN,RED,DCKD,COND,DISAB,DEST,SCOND(2),PSWRD LOGICAL TROM1,TROM2,TDISAB,TDEST,TWON,TLOST,TRESC,TALTOW,TBOFF, &TALERT,TNEW,TTMOUT,TOVER,TSHLD,TBASLO,TSLFDS,TWARN,THELLO,TLOOS, &TBALEN,TALSD,TINTRD,TBOSS LOGICAL*1 EE,ENDB,ENDS,ALPH,IMAGE(72),SHIP,NAME1,PRANK(13) DATA ENDB,ENDS,INDS,INDB/1H ,1HS,2HS.,2H. / C CALL SETRNK(IRNK,PRANK,1) 410 TYPE 411 411 FORMAT(/1X,'PATIENCE....YOUR CAPTLOG FILE IS BEING EDITED') OPEN(UNIT=1,NAME=CFILE,TYPE='OLD',ACCESS='APPEND') 10 CALL BLANKS(IMAGE) WRITE(1,11,ERR=900)IMAGE 11 FORMAT(1X,72A1) CALL BLANKS(IMAGE) 20 ENCODE(72,21,IMAGE,ERR=900) 21 FORMAT(72(1H*)) WRITE(1,11)IMAGE CALL BLANKS(IMAGE) 30 ENCODE(72,31,IMAGE,ERR=900) 31 FORMAT(16X,'FINAL ENTRIES TAKEN FROM SHIP''S LOG') WRITE(1,11)IMAGE 40 ENCODE(72,21,IMAGE,ERR=900) WRITE(1,11)IMAGE 50 CALL BLANKS(IMAGE) WRITE(1,11)IMAGE 60 ENCODE(72,61,IMAGE,ERR=900)DATE 61 FORMAT('STARDATE:',F8.1) WRITE(1,11)IMAGE CALL BLANKS(IMAGE) IF(TDEST.OR.TDISAB)GOTO 1 70 ENCODE(72,71,IMAGE,ERR=900) 71 FORMAT('Communication received from Star Fleet Command:') WRITE(1,11)IMAGE 80 CALL BLANKS(IMAGE) WRITE(1,11)IMAGE IF(TTMOUT)GOTO 340 90 ENCODE(72,91,IMAGE,ERR=900)PRANK 91 FORMAT('CONGRATULATIONS ',13A1,'! - MISSION ACCOMPLISHED.') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) 120 WRITE(1,11)IMAGE IE=INDS EE=ENDS IF(N5-N4.EQ.1)EE=ENDB IF(TM.LE.1.0)IE=INDB 130 ENCODE(72,131,IMAGE,ERR=900)N5-N4,EE,TM,IE 131 FORMAT('YOU HAVE DESTROYED OR CAPTURED',I4,' ALIEN',A1,' IN',F8.3, &' STARDATE',A2) WRITE(1,11)IMAGE CALL BLANKS(IMAGE) N2=0 IF(NROMD.EQ.0)GOTO 2 IE=INDB IF(NROMD.GT.1)IE=INDS 140 ENCODE(72,141,IMAGE,ERR=900)NROMD,IE 141 FORMAT('INCLUDING',I3,' ROMULAN',A2) WRITE(1,11)IMAGE CALL BLANKS(IMAGE) ENCODE(72,431,IMAGE,ERR=900) 431 FORMAT( &'The following statistics have been noted by Star Fleet Command:') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) ENCODE(72,441,IMAGE,ERR=900)NRESC 441 FORMAT(3X,'NUMBER OF STARBASES RESCUED',T52,':',I6) WRITE(1,11)IMAGE CALL BLANKS(IMAGE) ENCODE(72,451,IMAGE,ERR=900)NFRES 451 FORMAT(3X,'NUMBER OF FAILURES TO RESCUE STARBASES',T52,':',I6) WRITE(1,11)IMAGE CALL BLANKS(IMAGE) ENCODE(72,461,IMAGE,ERR=900)NCAPAL 461 FORMAT(3X,'NUMBER OF ENEMY VESSELS DELIVERED TO STARBASES',T52, &':',I6) WRITE(1,11)IMAGE CALL BLANKS(IMAGE) ENCODE(72,471,IMAGE,ERR=900)NPRTKN 471 FORMAT(3X,'NUMBER OF ENEMY PRISONERS DELIVERED',T52,':',I6) WRITE(1,11)IMAGE CALL BLANKS(IMAGE) 2 IF(NBASD.EQ.0)GOTO 190 IE=INDB IF(NBASD.GT.1)IE=INDS 150 ENCODE(72,151,IMAGE,ERR=900)NBASD,IE 151 FORMAT('UNFORTUNATELY YOU HAVE DESTROYED',I3,' STARBASE',A2) WRITE(1,11)IMAGE CALL BLANKS(IMAGE) 160 ENCODE(72,161,IMAGE,ERR=900) 161 FORMAT('A COURT OF INQUIRY WILL INVESTIGATE YOUR ACTIONS.') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) 170 ENCODE(72,171,IMAGE,ERR=900) 171 FORMAT('ALSO, YOUR RATING HAS BEEN REDUCED TO REFLECT YOUR STUPIDI &TY.') WRITE(1,11)IMAGE 180 CALL BLANKS(IMAGE) WRITE(1,11)IMAGE CALL BLANKS(IMAGE) 190 ENCODE(72,191,IMAGE,ERR=900)RATING,RANK 191 FORMAT('YOUR EFFICIENCY RATING WAS',F7.2,' % AT RANK',F5.0) WRITE(1,11)IMAGE 200 CALL BLANKS(IMAGE) WRITE(1,11)IMAGE 210 ENCODE(72,211,IMAGE,ERR=900) 211 FORMAT('*** CAPTAIN''S LOG CLOSED ***') WRITE(1,11)IMAGE OPEN(UNIT=2,NAME='TEMP.LOG',TYPE='SCRATCH') REWIND 1 REWIND 2 400 READ(1,11,END=7,ERR=7)IMAGE IF(IMAGE(1).NE.ALPH(27))WRITE(2,11,ERR=7)IMAGE GOTO 400 7 CALL CLOSE(1) OPEN(UNIT=1,NAME=CFILE,TYPE='OLD') REWIND 1 REWIND 2 9 READ(2,11,END=8,ERR=8)IMAGE WRITE(1,11,ERR=8)IMAGE GOTO 9 8 CALL CLOSE(1) CALL CLOSE(2) RETURN 1 IF(SHLD(5).LT.0)GOTO 220 ! SHIP DESTROYED IF(TSLFDS)GOTO 390 ! SELF-DESTRUCTION IF(POW+SHLD(5).LE.0)GOTO 230 ! ALL POWER EXPENDED IF(POW.EQ.0 .AND. GASP.GT.0.5)GOTO 240 ! BATT. EXHAUSTED IF(STATUS(13).LT.0.0)GOTO 250 ! BACKUP L.S. SYS. OUT IF(NCAS(1)+NCAS(2).GE.500)GOTO 270 ! CREW KILLED 420 ENCODE(72,421,IMAGE,ERR=900) ! LOST IN HYPERSPACE 421 FORMAT('***** HYPERSPACE MANEUVER UNSUCCESSFUL *****') GOTO 3 220 ENCODE(72,221,IMAGE,ERR=900)R1,C1 221 FORMAT('ALL SHIELDS PENETRATED AND DESTROYED BY ENEMY IN QUADRANT' &,I3,',',I3) WRITE(1,11)IMAGE CALL BLANKS(IMAGE) GOTO 4 390 ENCODE(72,391,IMAGE,ERR=900) 391 FORMAT('******** SELF-DESTRUCTION COMPLETED ********') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) GOTO 4 230 ENCODE(72,231,IMAGE,ERR=900) 231 FORMAT('***** ALL SHIP''S POWER EXPENDED *****') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) GOTO 3 240 ENCODE(72,241,IMAGE,ERR=900) 241 FORMAT('BATTERIES FOR BACKUP LIFE SUPPORT SYSTEM EXHAUSTED') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) GOTO 260 250 ENCODE(72,251,IMAGE,ERR=900) 251 FORMAT('BACKUP LIFE SUPPORT SYSTEM DESTROYED') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) 260 ENCODE(72,261,IMAGE,ERR=900) 261 FORMAT('*** ALL LIFE ABOARD TERMINATED ***') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) GOTO 3 270 ENCODE(72,271,IMAGE,ERR=900) 271 FORMAT('**** ENTIRE SHIP''S CREW HAS BEEN KILLED ****') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) 3 SCOND(1)=DISAB(1) SCOND(2)=DISAB(2) IF(TDISAB)GOTO 280 4 SCOND(1)=DEST(1) SCOND(2)=DEST(2) 280 WRITE(1,11)IMAGE CALL BLANKS(IMAGE) 290 ENCODE(72,291,IMAGE,ERR=900)SHIP,SCOND 291 FORMAT('********** ',16A1,1X,A8,A1,'! **********') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) IF(.NOT.TSLFDS)GOTO 120 IF(POW.EQ.0 .AND. STATUS(6).LT.0. .AND. STATUS(12).LT.0. .AND. CON &D .EQ. RED)GOTO 5 IF(SHLD(5).GT.H1 .OR. STATUS(6).GE.0. .AND. POW+SHLD(5).GT.H1)GOT &O 6 5 IF(NBASD.GT.0)GOTO 120 300 ENCODE(72,301,IMAGE,ERR=900) 301 FORMAT('YOUR GALLANT SACRIFICES IN DEFENSE OF THE FEDERATION') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) 310 ENCODE(72,311,IMAGE,ERR=900) 311 FORMAT('HAVE MADE YOU AND YOUR CREW HEROES THROUGHOUT THE') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) 320 ENCODE(72,321,IMAGE,ERR=900) 321 FORMAT('UNITED FEDERATION OF PLANETS.') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) GOTO 120 6 IF(N4.GE.N5 .AND. DLN-DATE.LT.1.)GOTO 5 330 ENCODE(72,331,IMAGE,ERR=900) 331 FORMAT('YOUR SELF-DESTRUCTION HAS BEEN DETERMINED TO HAVE BEEN UNN &ECESSARY.') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) GOTO 120 340 ENCODE(72,341,IMAGE,ERR=900)PRANK 341 FORMAT('********** YOU HAVE FAILED, ',13A1,'! **********') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) EE=ENDB IF(N4.GT.1)EE=ENDS 350 ENCODE(72,351,IMAGE,ERR=900)N4,EE 351 FORMAT('TIME HAS EXPIRED WITH ',I3,' ALIEN VESSEL',A1,' LEFT TO DE &STROY.') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) 360 ENCODE(72,361,IMAGE,ERR=900) 361 FORMAT('THE ABILITY OF THE FEDERATION TO STOP THE ENEMY FLEET HAS &BEEN') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) 370 ENCODE(72,371,IMAGE,ERR=900) 371 FORMAT('ENDANGERED BY YOUR FAILURE. YOU WILL BE DEMOTED ON RETURN &TO A') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) 380 ENCODE(72,381,IMAGE,ERR=900) 381 FORMAT('SPACE TUG COMMANDER!') WRITE(1,11)IMAGE CALL BLANKS(IMAGE) GOTO 120 900 TYPE 901 901 FORMAT(/1X,'*** ERROR ENCOUNTERED IN FINLOG ***') CALL CLOSE(1) RETURN END