home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / FORTRAN / SUPERT87.ZIP / DLETE.FOR < prev    next >
Encoding:
Text File  |  1986-12-15  |  10.5 KB  |  143 lines

  1.  
  2.       SUBROUTINE DLETE(NTYP,NUM)                                        0934
  3.  
  4. c    include 'tcommon.for'
  5.     %include tcommon.for
  6.  
  7.       GO TO (100,999,300,400,500,600,700),NTYP                          0964
  8. 999   RETURN                                                            0965
  9. C     ...DELETE *.                                                      0966
  10. 100   JGAL(ICE,JCE)=JGAL(ICE,JCE)-1                                     0967
  11.       IF(IDMG(6).EQ.0.OR.IDMG(7).EQ.0)      IGAL(ICE,JCE)=JGAL(ICE,JCE) 0968
  12.       X=STARS(NUM,1)                                                    0969
  13.       Y=STARS(NUM,2)                                                    0970
  14.       STARS(NUM,1)=0.                                                   0971
  15.       JJ=1                                                              0972
  16.       DO 110 J=1,NSTARS                                                 0973
  17.       IF(STARS(J,1).EQ.0.)GO TO 110                                     0974
  18.       JJ=0                                                              0975
  19.       GO TO 120                                                         0976
  20. 110   CONTINUE                                                          0977
  21.       NSTARS=0                                                          0978
  22. C     ...SHUTTLECRAFT DESTROYED - FINDINGS LOST.                        0979
  23. 120   IF(ISTSH.NE.NUM.OR.ISHD.EQ.99)GO TO 200                           0980
  24.       WRITE(6,11)                                                       0981
  25. 11    FORMAT(' SHUTTLECRAFT DESTROYED')                                 0982
  26.       ISTSH=0                                                           0983
  27.       ISHD=0                                                            0984
  28.       DO 150    J=1,9                                                   0985
  29.       IF(IFNDS(J).EQ.-1)GO TO 150                                       0986
  30.       IFNDS(J)=0                                                        0987
  31. 150   CONTINUE                                                          0988
  32.       DO 151 J=1,10                                                     0989
  33. 151   ISHSTR(J)=0                                                       0990
  34.       ISHNUM=ISHNUM-1                                                   0991
  35.       GO TO 888                                                         0992
  36. 200   IF(ISTSH.NE.99.OR.ISHD.NE.NUM)GO TO 888                           0993
  37.       WRITE(6,12)                                                       0994
  38. 12    FORMAT(' SHUTTLECRAFT OBJECTIVE DESTROYED')                       0995
  39. C     ...FIND NEW OBJECTIVE (NEAREST UNEXPLORED STAR) IF POSSIBLE.      0996
  40.       IF(NSTARS.EQ.0)GO TO 290                                          0997
  41.       JJ=ISHSTR(2)                                                      0998
  42.       IF(JJ.LE.0.OR.STARS(JJ,1).EQ.0.)GO TO 290                         0999
  43.       DO 225 J=2,10                                                     1000
  44. 225   ISHSTR(J-1)=ISHSTR(J)                                             1001
  45.       DIST=RANGE(SHX,STARS(JJ,1),SHY,STARS(JJ,2))                       1002
  46.       IF(JJ.EQ.0)GO TO 290                                              1003
  47.       DX=DIST/SHVX/100.                                                 1004
  48.       WRITE(6,230)JJ,DX                                                 1005
  49. 230   FORMAT(' GOING ON TO STAR SYSTEM ',I1,' ARRIVAL IN ',F4.2,' STARDA1006
  50.      1YS')                                                              1007
  51.       ISHD=JJ                                                           1008
  52.       GO TO 888                                                         1009
  53. 290   WRITE(6,295)                                                      1010
  54. 295   FORMAT(' TURNING BACK')                                           1011
  55.       ISHD=99                                                           1012
  56.       DO 296 I=1,10                                                     1013
  57. 296   ISHSTR(I)=0                                                       1014
  58.       GO TO 888                                                         1015
  59. C     ...DELETE K.                                                      1016
  60. 300   LEFTK=LEFTK-1                                                     1017
  61.       JGAL(ICE,JCE)=JGAL(ICE,JCE)-100                                   1018
  62.       IF(IDMG(6).EQ.0.OR.IDMG(7).EQ.0)      IGAL(ICE,JCE)=JGAL(ICE,JCE) 1019
  63.       X=XKL(NUM,1)                                                      1020
  64.       Y=XKL(NUM,2)                                                      1021
  65.       XKL(NUM,1)=0.                                                     1022
  66.       JJ=1                                                              1023
  67.       DO 310 J=1,KLNGNS                                                 1024
  68.       IF(XKL(J,1).EQ.0.)GO TO 310                                       1025
  69.       JJ=0                                                              1026
  70.       GO TO 320                                                         1027
  71. 310   CONTINUE                                                          1028
  72.       KLNGNS=0                                                          1029
  73. 320   IF(ITRMEN(NUM+1).EQ.0)GO TO 330                                   1030
  74.       WRITE(6,301)ITRMEN(NUM+1)                                         1031
  75. 301   FORMAT(I4,' TROOPS ON BOARDS LOST')                               1032
  76.       ITRMEN(NUM+1)=0                                                   1033
  77.       IF(ISTAT.EQ.0)GO TO 330                                           1034
  78. C     ...SET ISTAT TO STOP BEAMING                                      1035
  79.       IF(JUP.EQ.3.AND.JFROM.EQ.NUM.OR.JDOWN.EQ.3.AND.JTO.EQ.NUM)ISTAT=991036
  80.      199                                                                1037
  81. 330   ICNTL(NUM+1)=0                                                    1038
  82.       GO TO 888                                                         1039
  83. C     ...DELETE ROMULAN.                                                1040
  84. 400   LEFTR=LEFTR-1                                                     1041
  85.       JGAL(ICE,JCE)=JGAL(ICE,JCE)-1000                                  1042
  86.       IF(IDMG(6).EQ.0.OR.IDMG(7).EQ.0)      IGAL(ICE,JCE)=JGAL(ICE,JCE) 1043
  87.       X=XROM(NUM,1)                                                     1044
  88.       Y=XROM(NUM,2)                                                     1045
  89.       XROM(NUM,1)=0.                                                    1046
  90.       IF(ICLOAK.EQ.2.AND.NUM.EQ.1)ICLOAK=1                              1047
  91.       JJ=1                                                              1048
  92.       DO 410 J=1,NROM                                                   1049
  93.       IF(XROM(J,1).EQ.0.)GO TO 410                                      1050
  94.       JJ=0                                                              1051
  95.       GO TO 420                                                         1052
  96. 410   CONTINUE                                                          1053
  97.       NROM=0                                                            1054
  98. 420   IF(ITRMEN(NUM+10).EQ.0)GO TO 430                                  1055
  99.       WRITE(6,301)ITRMEN(NUM+10)                                        1056
  100.       ITRMEN(NUM+10)=0                                                  1057
  101.       IF(ISTAT.EQ.0)GO TO 430                                           1058
  102. C     ...SET ISTAT TO STOP BEAMING                                      1059
  103.       IF(JUP.EQ.4.AND.JFROM.EQ.NUM.OR.JDOWN.EQ.4.AND.JTO.EQ.NUM)ISTAT=991060
  104.      199                                                                1061
  105. 430   ICNTL(NUM+10)=0                                                   1062
  106.       GO TO 888                                                         1063
  107. C     ...DELETE G.                                                      1064
  108. 500   IGH=0                                                             1065
  109.       X=GHOST(1)                                                        1066
  110.       IF(ITRMEN(20).EQ.0)GO TO 530                                      1067
  111.       WRITE(6,301)ITRMEN(20)                                            1068
  112.       ITRMEN(20)=0                                                      1069
  113.       IF(ISTAT.EQ.0)GO TO 530                                           1070
  114. C     ...SET ISTAT TO STOP BEAMING                                      1071
  115.       IF(JUP.EQ.5.OR.JDOWN.EQ.5)ISTAT=9999                              1072
  116. 530   ICNTL(20)=0                                                       1073
  117.       Y=GHOST(2)                                                        1074
  118.       GO TO 888                                                         1075
  119. C     ...DELETE B.                                                      1076
  120. 600   IBASE=0                                                           1077
  121.       X=BASE(1)                                                         1078
  122.       Y=BASE(2)                                                         1079
  123.       IBMENR=0                                                          1080
  124.       JGAL(ICE,JCE)=JGAL(ICE,JCE)-10                                    1081
  125.       IF(IDMG(6).EQ.0.OR.IDMG(7).EQ.0)      IGAL(ICE,JCE)=JGAL(ICE,JCE) 1082
  126.       GO TO 888                                                         1083
  127. C     ...DELETE T.                                                      1084
  128. 700   TORPS(NUM,1)=0.                                                   1085
  129.       JJ=1                                                              1086
  130.       DO 710 J=1,NTORPS                                                 1087
  131.       IF(TORPS(J,1).EQ.0.)GO TO 710                                     1088
  132.       JJ=0                                                              1089
  133.       GO TO 999                                                         1090
  134. 710   CONTINUE                                                          1091
  135.       NTORPS=0                                                          1092
  136.       GO TO 999                                                         1093
  137. C     ...PRINT MESSAGE                                                  1094
  138. 888   WRITE(6,1)LETR(NTYP),NUM,X,Y                                      1095
  139. 1     FORMAT(1X,A1,I1,' AT ',F4.1,',',F4.1,' DESTROYED')                1096
  140.       IF(LEFTR.EQ.0.AND.LEFTK.EQ.0)CALL RATING(4)                       1097
  141.       GO TO 999                                                         1098
  142.       END                                                               1099
  143.