-+-+-+-+-+-+-+-+ START OF PART 5 -+-+-+-+-+-+-+-+ X`09AB=EMAP(Z62) X`09IF (COMPAR(AB,Z62,OKVECT).EQ.1) MOV1=MOOVE`09! ??? XC STFOL: X1000`09DO 1100 IVAR= MOV1,MOV1+7*TDIR,TDIR X`09MOOVE=ICORR(IVAR) X`09Z62=Z6+IARROW(MOOVE+1) X`09IF (ORDER(Z62) .NE. 0) GOTO 1100 X`09AB=EMAP(Z62) X`09IF (COMPAR(AB,Z62,OKVECT).EQ.0) GOTO 1100 XC OKSET2: X`09BAKADR=2 X`09GOTO 500 X1100`09CONTINUE X XC FAILUR: X1200`09PATH=MOV(BEG,END) X`09FAILUR=FAILUR+1 X`09FLAG=0 X`09RETURN X XC CHKNXT: X1300`09T1=MOV(Z6,END) X`09Z62=Z6+IARROW(T1+1) X`09AB=EMAP(Z62) X`09IF (COMPAR(AB,Z62,OKVECT).EQ.0) GOTO 900 X`09DO 1400 IVAR=BACKUP,1,-1 X`09IF (Z6 .EQ. G2(IVAR)) GOTO 900 X1400`09CONTINUE X`09G2(BACKUP)=Z6 X`09BACKUP=BACKUP+1 X`09IF (BACKUP .LE. 100) GOTO 300 X`09GOTO 700 XC X`09END XC X`09FUNCTION COMPAR(AB,Z62,OKVECT) XC XC USED BY PATH, CHECKS IF AB OR LOCATION Z62 IS A TYPE CONTAINED IN OKVECT XC`20 X`09IMPLICIT INTEGER(A-Z) X`09BYTE OKVECT(5),AB X`09BYTE OMAP(6000) X`09COMMON/OMAP/OMAP XC X`09COMPAR = 1 X`09IF (AB .EQ. OKVECT(1)) RETURN X`09IF (OMAP(Z62) .EQ. OKVECT(1)) RETURN X`09IF (AB .EQ. OKVECT(2)) RETURN X`09IF (AB .EQ. OKVECT(3)) RETURN X`09IF (AB .EQ. OKVECT(4)) RETURN X`09IF (AB .EQ. OKVECT(5)) RETURN X`09COMPAR = 0 X`09RETURN X`09END X`0C X`09SUBROUTINE TEST4(Z6,FLAG,DIR,MOVE1,MOVNUM,BEG,END,AG2,FLAG2) XC XC TEST SUBROUTINE FOR PATH, DISPLAYS CURRENT PATH PROGRESS XC X`09INCLUDE 'EMPIRE.INC/NOLIST' X`09INTEGER AG2(100) XC`20 X`09IF (GIGI.NE.0) CALL REGIS_ON X`09CALL CURSOR(Z6-IADJST) X`09IF (GIGI.NE.0) CALL CENTER_CURSOR X`09IF (FLAG.NE.1001) E=GETCHX()`09!WAIT FOR CHAR IF TRACE MODE X`09IF (GIGI.NE.0) CALL REGIS_OFF X`20 X`09IX='G'`09`09`09`09!DISPLAY CURRENT MOVE ON MAP X`09IF (FLAG2.EQ.1) TYPE 999,IX X`09IX='H' X`09IF (FLAG2.EQ.2) TYPE 999,IX X`09IF (FLAG.EQ.1001) RETURN XC`09`09`09`09`09PROCESS THIS CHAR X`09IF (E.EQ.' ') RETURN`09`09!SPACE, CONTINUE X`09IF (E.EQ.'G') GOTO 100`09`09!G, DISPLAY G2 ARRAY X`20 X`09CALL LIB$SET_CURSOR(1,1)`09!IF NOT SPACE OR "G", SHOW PATH VARIABLES X`09TYPE 998,Z6,MOVE1,MOVNUM X999`09FORMAT('+',A1$) X998`09FORMAT(' Z6:',I4,' MOVE1:',I1,' MOVNUM:',I3) X`09CALL LIB$SET_CURSOR(2,1) X`09TYPE 997,BEG,END,IADJST,DIR,FLAG X997`09FORMAT(' BEG:'I4' END:'I4' IADJST:'I4' TDIR:'I2' FLAG:'I4) X`20 X`09IF (FLAG2 .EQ. 1) TYPE 996 X996`09FORMAT(' FLAG2: MOVE ') X`09IF (FLAG2 .EQ. 2) TYPE 995 X995`09FORMAT(' FLAG2: SHORE') X`09RETURN X`20 X100`09CALL LIB$SET_CURSOR(1,1) X`09TYPE 994,AG2 X994`09FORMAT(1X,16I5) X`09RETURN X`09END X`0C X`09SUBROUTINE SHIPMV (ACRALOC,ACRAHIT,NUM,OWN1,HITMAX) XC XC THIS SUBROUTINE HANDLES PLAYER'S SHIP MOVES XC X`09INCLUDE 'EMPIRE.INC/NOLIST' XC`20 X`09DO 2600 Y=1,LIMIT(NUM) X`09LOC=ACRALOC+Y X`09IF (MOVEDFLAG(LOC).NE.0) GOTO 2600 X`09Z6=RLMAP(LOC) X`09IF (Z6.EQ.0) GOTO 2600 X`09IF ((MODE.EQ.1).AND.(POSCHK(Z6,OWN1).EQ.0)) GOTO 2600 X`09MOVEDFLAG(LOC)=1 X X`09DO 2500 ITURN=1,2 X`09LOC=ACRALOC+Y X`09Z6=RLMAP(LOC) X`09IF (Z6.EQ.0) GOTO 2600 X`09JIT=ACRAHIT+Y X`09H1=J1TS(JIT) X`09IF ((ITURN.EQ.2).AND.(H1.LE.HITMAX/2)) GOTO 2600 X`09Z7=Z6 X`09AB=RMAP(Z6) XC`20 XC CHECK TO SEE IF SHIP WAS DESTROYED (IF THE CITY IT WAS IN WAS CAPTURED). XC X`09IF ((AB.EQ.OWN1).OR.(AB.EQ.'O')) GOTO 100 X`09CALL HEAD(OWN1,Y,LOC,Z6,H1) X`09CALL STROUT(' Destroyed.',1) X`09GOTO 1500 XC`20 X100`09IF ((ITURN.EQ.1).AND.(AB.EQ.'O')) H1=H1+1`09!REPAIR IF IN PORT X`09IF (H1.GT.HITMAX) H1=HITMAX X`09CALL STASIS(Z6,LOC) X200`09MYCOD=MYCODE(LOC)`09`09`09!GET MY FUNCTION CODE X`09IF (MYCOD.EQ.0) GOTO 900`09`09!IF ZERO, SKIP AHEAD X`09IF ((MYCOD.NE.9997).OR.((OWN1.NE.'T').AND.(OWN1.NE.'C'))) X`091`09GOTO 500`09`09!CHECK Transports and Carriers X`09N=0`09`09`09`09!FOR OVERLOADING X`09NT=2 X`09IA=1 X`09IB=LIMIT(1) X`09IF (OWN1.NE.'C') GOTO 300 X`09NT=1 X`09IA=501 X`09IB=LIMIT(2)+500 X300`09DO 400 J=IA,IB X400`09IF (RLMAP(J).EQ.Z6) N=N+1 X`09IF (N.LT.NT*H1) GOTO 500 X`09MYCODE(LOC)=0 X`09GOTO 900 X X500`09IF ((MYCOD.LT.101).OR.(MYCOD.GT.6108)) GOTO 1100 X`09IF (MYCOD.LE.6000) GOTO 600 X`09IF (MYCOD.GT.6100) GOTO 700 X`09GOTO 1100 X X600`09Z6=Z6+IARROW(MOV(Z6,MYCOD)+1)`09`09!DESTINATION MOVE X`09GOTO 800 X X700`09Z6=Z6+IARROW(MYCOD-6100+1)`09`09!DIRECTIONAL MOVE X800`09AD=RMAP(Z6) X`09IF (((AD.EQ.'.').OR.(AD.EQ.'O')).AND.(ORDER(Z6).EQ.0)) GOTO 1100 X`09Z6=Z7 X900`09CALL SECTOR(PMAP(1)) X1000`09CALL LTR(Z6,ITURN) X`09CALL MVE(OWN1,MDATE,Y,LOC,JIT,Z6,Z7,DISAS,Z6-IADJST) X`09IF (DISAS.EQ.-2) GOTO 200 XC`20 XC MOVE EVALUATION. Z6=TO, Z7=FROM, CHECK OUT NEW LOCATION XC X1100`09IF (OMAP(Z7).NE.'*') RMAP(Z7)=OMAP(Z7)`09!REMOVE UNIT FROM MAP X`09AC=RMAP(Z6) X`09AO=OMAP(Z6) X`09IF (Z6.EQ.MYCODE(LOC)) MYCODE(LOC)=0`09!ARRIVED AT DESTINATION X`09IF (AC.NE.'O') GOTO 1200`09`09!IS IT OUR CITY? X`09CALL LIB$SET_CURSOR(3,1)`09`09!DOCKED IN CITY X`09CALL STROUT(' Ship is docked.',1) X`09GOTO 1800 X X1200`09IF (AO.EQ.'.') GOTO 1600 `09`09!IF SEA, SKIP AHEAD X1300`09IF (.NOT. FATAL(4)) GOTO 2700 X`09IF ((AC.NE.'+').AND.(AO.NE.'*')) GOTO 2400 !CHECK FOR ENEMY TO FIGHT X1400`09CALL LIB$SET_CURSOR(2,1) X`09CALL IDEN(OWN1) X`09CALL STROUT('broke up on the shore.',1) X`09GOTO 1500 X X1600`09IF (AC.NE.'.') GOTO 2400`09`09! X`09RMAP(Z6)=OWN1`09`09`09`09!NORMAL MOVE X1800`09RLMAP(LOC)=Z6 X`09J1TS(JIT)=H1 X X1900`09IF ((OWN1.NE.'T').AND.(OWN1.NE.'C')) GOTO 2500 X`09N=0`09`09`09!IF WE'RE CARRING SOMETHING, BRING IT ALONG X`09IA=0`09`09`09!SET UP FOR TRANSPORT X`09IB=LIMIT(1) X`09NT=2 X`09IF (OWN1.NE.'C') GOTO 2000 X`09IA=500`09`09`09!SET UP FOR CARRIER X`09IB=LIMIT(2) X`09NT=1 X2000`09DO 2300 I=IA+1,IA+IB`09`09!FIND PIECES AND MOVE THEM X`09IF (RLMAP(I).NE.Z7) GOTO 2300 X`09IF (N+1.GT.NT*H1) GOTO 2050 X`09RLMAP(I)=Z6 X`09N=N+1 X`09GOTO 2300 X2050`09IF (RMAP(Z7).EQ.'O') GOTO 2300 X`09RLMAP(I)=0 X`09CALL LIB$SET_CURSOR(2,1) X`09IF (OWN1.EQ.'C') GOTO 2100 X`09CALL STROUT('Army #',0) X`09GOTO 2200 X2100`09CALL STROUT('Fighter #',0) X2200`09CALL DECPRT(I-IA) X`09CALL STROUT(' was sunk.',1) X2300`09CONTINUE X`09GOTO 2500 X X2400`09IF ((AC.GE.'A').AND.(AC.LE.'T')) THEN X`09`09 IF (.NOT.FATAL(2)) GOTO 2700 X`09`09ENDIF X`09H2=30`09`09`09`09!GOING TO FIGHT ANOTHER UNIT X`09OWN2=AC X`09CALL FIND(OWN2,Z6,Z8,H2) X`09CALL FGHT(Z6,H1,H2,OWN1,OWN2) X`09CALL FIND(OWN2,Z6,Z8,H2) X`09IF (H1.LE.0) GOTO 1500 X`09RMAP(Z6)=OWN1`09`09`09!PUT US ON THE MAP X`09IF ((OWN2.GE.'a').AND.(OWN2.LE.'t')) CALL SONAR(Z6) X`09IF (AO.EQ.'.') GOTO 1800 X`09RMAP(Z6)=AO`09`09`09!WON THE BATTLE, BUT.... X`09IF ((OWN2.GE.'a').AND.(OWN2.LE.'t')) CALL SONAR(Z6) X`09CALL LIB$SET_CURSOR(2,1) X`09CALL STROUT('Your ship successfully clears the enemy from the beach X`091 before, CRUNCH!, grounding itself.',1) X X1500`09RLMAP(LOC)=0`09`09`09!KILL MY UNIT X`09MYCODE(LOC)=0 X`09CALL SENSOR(Z6) X`09H1=0 X`09GOTO 1900 X X2500`09CALL SENSOR(Z6) X2600`09CONTINUE X`09RETURN XC XC RECOVER FROM FATAL MOVES X2700`09Z6=Z7`09`09`09!RESTORE OLD LOCATION X`09RMAP(Z6)=AB`09`09!RESTORE MAP X`09GOTO 900`09`09!TRY AGAIN X X`09END X`0C X`09SUBROUTINE ARMYMV XC XC THIS SUBROUTINE HANDLES PLAYER'S ARMY MOVES XC`20 X`09INCLUDE 'EMPIRE.INC/NOLIST' X`09LOGICAL FATAL XC`20 X`09ITURN=1 X`09DO 2700 Y=1,LIMIT(1) X`09IF (MOVEDFLAG(Y).NE.0) GOTO 2700 X`09Z6=RLMAP(Y) X`09IF (Z6.EQ.0) GOTO 2700 X`09MYCOD=MYCODE(Y) X`09IF ((MODE.EQ.1).AND.(POSCHK(Z6,'A').EQ.0)) GOTO 2700 X`09MOVEDFLAG(Y)=1 X`09Z7=Z6 X`09AB=RMAP(Z6) X`09IF ((AB.EQ.'A').OR.(AB.EQ.'T').OR.(AB.EQ.'O')) GOTO 200 X100`09CALL LIB$SET_CURSOR(3,1) X`09CALL STROUT('Army #',10) X`09CALL DECPRT(Y) X`09CALL STROUT(' destroyed.',1) X`09GOTO 2500 XC`20 X200`09IF (AB.NE.'T') GOTO 400 X X`09DO 300 I=1,8 X`09IF (RMAP(Z6+IARROW(I+1)).EQ.'T') GOTO 400 X300`09IF (OMAP(Z6+IARROW(I+1)).NE.'.') GOTO 400 !DON'T ASK IF NOWHERE TO GO X`09GOTO 2700 X`20 X400`09IF (MYCOD.EQ.0) GOTO 1000 X`09IF (MYCOD.NE.100) GOTO 500 X`09Z6=Z6+IARROW(JIGGLE(Z6,Y)+1)`09`09! DO RANDOM MOVE X`09GOTO 1200 X500`09CALL STASIS(Z6,Y)`09`09`09! WAKE UP IF NEAR ENEMY X600`09MYCOD=MYCODE(Y) X`09IF (MYCOD.EQ.0) GOTO 1000 X`09IF ((MYCOD.LT.100).OR.(MYCOD.GT.6108)) GOTO 1200 X`09IF (MYCOD.GT.6100) GOTO 800 X`09IF (MYCOD.LE.6000) GOTO 700 X`09GOTO 1200 X700`09Z6=Z6+IARROW(MOV(Z6,MYCOD)+1)`09`09! DO A MOVE TOWARD A LOCATION X`09GOTO 900 X800`09Z6=Z6+IARROW(MYCOD-6100+1)`09`09! DO DIRECTION MOVES X900`09AD=RMAP(Z6) X`09IF (((AD.EQ.'+').OR.(AD.EQ.'T')).AND.(ORDER(Z6).EQ.0)) GOTO 1200 X`09Z6=Z7 X1000`09CALL SECTOR(PMAP(1)) X`09CALL LTR(Z6,ITURN) X1100`09CALL MVE('A',MDATE,Y,Y,1,Z6,Z7,DISAS,Z6-IADJST) X`09IF (DISAS.EQ.-2) GOTO 600`09`09!JUST PUT INTO STASIS XC`20 XC MOVE EVALUATION, Z6=TO, Z7=FROM, CHECK OUT NEW LOCATION XC X1200`09IF ((RMAP(Z7).NE.'T').AND.(OMAP(Z7).NE.'*')) RMAP(Z7)=OMAP(Z7) X`09IF (Z6.EQ.MYCODE(Y)) MYCODE(Y)=0 X`09AC=RMAP(Z6) X`09AO=OMAP(Z6) X`09IF (AC.EQ.'T') GOTO 1400`09`09!GETTING ON A TRANSPORT? X`09IF ((RMAP(Z7).NE.'T').OR.(AO.NE.'.')) GOTO 1300 X`09IF (.NOT. FATAL(1)) GOTO 2800`09`09!CANNOT ATTACK ON TRANSPORTS,ASK X`09CALL LIB$SET_CURSOR(2,1) X`09CALL STROUT('You are incapable of attack while X`091 on a transport.',1) X`09CALL STROUT('Your army jumped into the briny and drowned.',1) X`09GOTO 2500 X X1300`09IF (AO.NE.'.') GOTO 1600`09`09!MAKE SURE NOT SEA X`09IF (.NOT. FATAL(1)) GOTO 2800`09`09!ASK ABOUT DROWNING X`09IF (AC.NE.'.') GOTO 1800 X`09CALL LIB$SET_CURSOR(3,1) X`09CALL STROUT('Your army marched dutifully into the X`091 sea and drowned.',1) X`09GOTO 2500 X X1400`09H1=30`09`09`09`09`09!CHECK IF ROOM ON TRANSPORT X`09CALL FIND('T',Z6,Z8,H1) X`09N=0 X`09DO 1500 I=1,LIMIT(1) X`09IF (RLMAP(I).NE.Z6) GOTO 1500 X`09IF (I.EQ.Y) GOTO 1500`09!DONT COUNT OURSELF X`09N=N+1 X1500`09CONTINUE X`09IF (N.LT.H1*2) GOTO 1700 X`09IF (.NOT. FATAL(6)) GOTO 2800 X`09IF (MYCODE(Y).GT.50) MYCODE(Y)=0 X`09GOTO 1700 X X1600`09IF (AC.NE.'+') GOTO 1800`09`09!CHECK IF CLEAR X`09RMAP(Z6)='A'`09`09`09`09!PUT ARMY ON THE MAP X1700`09RLMAP(Y)=Z6`09`09`09`09!RECORD NEW LOCATION X`09GOTO 2600 X XC WE'RE ATTACKING SOMETHING X1800`09H1=1`09`09`09`09`09!ARMIES HAVE ONE HIT X`09IF (OMAP(Z6).NE.'*') GOTO 2400 X`09DO 2300 IY=1,70`09`09`09`09!IT'S A CITY, FIND WHO OWNS IT X`09IF (X(IY).NE.Z6) GOTO 2300 X`09IF (OWNER(IY).NE.1) GOTO 1900 X`09DO 1850 JY=1,LIMIT(5) X`09IF (Z6.EQ.RLMAP(ITT+JY)) GOTO 1400 X1850`09CONTINUE X`09IF (.NOT. FATAL(5)) GOTO 2800`09`09!ASK ABOUT FATAL MOVE X`09RMAP(Z6)='O' X`09CALL LIB$SET_CURSOR(2,1) X`09CALL STROUT('BASTARDO! You attacked your own city!',1) X`09CALL STROUT('Your impertinent attacking army was liquidated.',1) X`09GOTO 2500 X X1900`09IF (RND(100).LT.50) GOTO 2000 X`09CALL LIB$SET_CURSOR(3,1) X`09CALL STROUT('The scum defending the city has crushed X`091 your attacking blitzkrieger!',1) X`09GOTO 2300 X X2000`09CALL SECTOR(PMAP(1)) X`09CALL LIB$SET_CURSOR(2,1) X`09CALL STROUT('City #',10) X`09CALL DECPRT(IY) X`09CALL STROUT(' has been subjugated!',10) X`09CALL STROUT('The army has been dispersed to enforce X`091 control.',1) X`09CALL STROUT('What are your production demands for this city?',3) X`09RMAP(Z6)='O' X`09CALL SENSOR(Z6) X`09IF (GIGI.NE.0) CALL REGIS_ON X`09CALL CURSOR(Z6-IADJST) X`09IF (GIGI.NE.0) CALL CENTER_CURSOR X`09PHASE(IY)=0 X`09FOUND(IY)=10000 X`09CALL PHASIN(IY,E) X`09IF (GIGI.NE.0) CALL REGIS_OFF X`09CALL LIB$SET_CURSOR(3,49) X`09TYPE 999,E X999`09FORMAT('+',A1,$) X`09IF (OWNER(IY).NE.2) GOTO 2200`09`09!IF ENEMY OWNED IT, TELL HIM X`09CALL SONAR(Z6) X`09DO 2100 I=1,70 X`09IF (TARGET(I).EQ.Z6) GOTO 2200 X`09IF (TARGET(I).NE.0) GOTO 2100 X`09TARGET(I)=Z6 X`09GOTO 2200 X2100`09CONTINUE X2200`09OWNER(IY)=1 X X2300`09CONTINUE X`09GOTO 2500 X XC ATTACKING ANOTHER UNIT X2400`09IF ((AC.GE.'A').AND.(AC.LE.'T')) THEN X`09`09IF (.NOT.FATAL(2)) GOTO 2800 X`09`09ENDIF X`09OWN1='A' X`09OWN2=AC X`09H1=1 X`09H2=30 X`09CALL FIND(OWN2,Z6,Z8,H2) X`09CALL FGHT(Z6,H1,H2,OWN1,OWN2) X`09CALL FIND(OWN2,Z6,Z8,H2) X`09IF (H1.LE.0) GOTO 2500`09`09! DID I LOSE?, YES, WIPE UP X`09RMAP(Z6)='A' X`09IF ((OWN2.GE.'a').AND.(OWN2.LE.'t')) CALL SONAR(Z6) X`09IF (AO.EQ.'+') GOTO 1700 X`09RMAP(Z6)=AO X`09IF ((OWN2.GE.'a').AND.(OWN2.LE.'t')) CALL SONAR(Z6) X`09CALL LIB$SET_CURSOR(2,1) X`09CALL STROUT('Your army regretfully drowns after its successful X`091 assault',1) X X2500`09RLMAP(Y)=0`09`09`09!"KILL" MY ARMY X`09MYCODE(Y)=0 X2600`09CALL SENSOR(Z6) X2700`09CONTINUE X`09RETURN XC XC RECOVER FROM FATAL MOVE, AND TRY AGAIN XC X2800`09Z6=Z7`09`09`09`09! GO BACK TO OLD LOCATION X`09RMAP(Z6)=AB`09`09`09! CHANGE IT BACK TO PREVIOUS X`09GOTO 1000 X`09END X X`09LOGICAL FUNCTION FATAL(DUMMY) XC XC ASK PLAYER IF WANTS TO RECONSIDER XC X`09IMPLICIT INTEGER(A-Z) X`09BYTE YES(2) X`09DATA YES/'Y','y'/ X X`09CALL LIB$SET_CURSOR(2,1) X`09GOTO (100,200,300,400,500,600) DUMMY X100`09CALL STROUT('The troops cannot swim too well, Sir! X`091 Are you sure you want to GOTO sea?',13) X`09GOTO 700 X200`09CALL STROUT('SIR! Those are OUR men! Do you really want to attack X`091 them?',13) X`09GOTO 700 X300`09CALL STROUT('That''s NEVER worked before, Sir! Are sure you want X`091 to try?',13) X`09GOTO 700 X400`09CALL STROUT('Ships need SEA to float, Sir! Do you really want X`091 go on shore?',13) X`09GOTO 700 X500`09CALL STROUT('That''s OUR city, Sir! Do you really want to attack X`091 the garrison?',13) X`09GOTO 700 X600`09CALL STROUT('Sorry Sir, there is no room left on the transport. X`091 Do you insist?',13) X X700`09E=GETCHX() X`09CALL LIB$ERASE_LINE(2,1) X`09IF (E.EQ.YES(1) .OR. E.EQ.YES(2)) THEN`20 X`09`09FATAL=.TRUE. X`09 ELSE`09 X`09`09FATAL=.FALSE. X`09 ENDIF X`09RETURN X`09END X`0C X`09SUBROUTINE FIGHMV XC XC THIS SUBROUTINE HANDLES PLAYER'S FIGHTER MOVES XC X`09INCLUDE 'EMPIRE.INC/NOLIST' X`09LOGICAL FATAL XC`20 X`09DO 2100 Y=1,LIMIT(2) X`09LOC=500+Y X`09IF (MOVEDFLAG(LOC).NE.0) GOTO 2100 X`09Z6=RLMAP(LOC) X`09IF (Z6.EQ.0) GOTO 2100 X`09IF ((MODE.EQ.1).AND.(POSCHK(Z6,'F').EQ.0)) GOTO 2100 X`09MOVEDFLAG(LOC)=1 X`09Z3=MIN(RANGE(Y),4) X`09IF (Z3.EQ.0) Z3=4 X X`09DO 1900 ITURN=1,Z3 X`09LOC=500+Y X`09Z6=RLMAP(LOC) X`09IF (Z6.EQ.0) GOTO 2100 X`09AB=RMAP(Z6) XC`20 XC NOW CHECK TO SEE IF FIGHTER IS IN A CITY, IF IT IS CHANGE THE XC STASIS NUMBER OF THE FIGHTER TO THAT SPECIFIED BY FIPATH(I) XC X50`09IF (AB.NE.'O') GOTO 300`09`09!IF FIGHTER NOT IN CITY X`09DO 100 I=1,70 X100`09IF (X(I).EQ.Z6) GOTO 200`09`09!FIND CITY AT Z6 X200`09IF (FIPATH(I).NE.0) MYCODE(LOC)=FIPATH(I)!CHANGE STASIS OF FIGHTER XC`20 XC CHECK FOR FIGHTERS DESTROYED ALONG WITH CARRIER OR CITY XC +-+-+-+-+-+-+-+- END OF PART 5 +-+-+-+-+-+-+-+-