edjames@ic.Berkeley.EDU (Ed James) (12/18/86)
#----cut here-----cut here-----cut here-----cut here----- #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create the files: # vms_empire # This archive created by edjames at Thu Dec 18 12:15:35 1986 export PATH; PATH=/bin:$PATH if test ! -d 'vms_empire' then mkdir 'vms_empire' fi cd 'vms_empire' if test -f 'README' then echo shar: will not over-write existing file "'README'" else cat << \SHAR_EOF > 'README' VMS Empire Sources This is the game of 2 player EMPIRE, human vs computer. These sources were originally given to me in 1985, and were written fully in fortran for VMS. I converted it to UNIX and some C and curses. It is in no way bug free, but it should at least compile. The sources came originally from DECUS, I was told, and have gone through so many hands as to be public domain. Feel free to hack on it. If you get it working better, by all means send me a copy. I also have the original VMS sources. Mail me if you're *real* interested. --ed edjames@ic.berkeley.edu ucbvax!edjames SHAR_EOF if test 637 -ne "`wc -c < 'README'`" then echo shar: error transmitting "'README'" '(should have been 637 characters)' fi fi # end of overwriting check if test -f 'Makefile' then echo shar: will not over-write existing file "'Makefile'" else cat << \SHAR_EOF > 'Makefile' DEST = . EXTHDRS = /usr/include/ctype.h \ /usr/include/curses.h \ /usr/include/math.h \ /usr/include/sgtty.h \ /usr/include/stdio.h \ /usr/include/sys/ioctl.h \ /usr/include/sys/time.h \ /usr/include/sys/ttychars.h \ /usr/include/sys/ttydev.h HDRS = c_common.h \ common.h CFLAGS = -g #FFLAGS = -g LDFLAGS = -g -lcurses -ltermlib -lm -lF77 -lI77 -lU77 LIBS = LINKER = cc MAKEFILE = Makefile OBJS = addidt.o \ addrock.o \ addsts.o \ armcnt.o \ armjmp.o \ armyen.o \ armymv.o \ attack.o \ bell.o \ block.o \ bufpos.o \ c.o \ carier.o \ citfnd.o \ cityct.o \ cityph.o \ compar.o \ contained.o \ cost.o \ cursor.o \ data.o \ decode.o \ delay.o \ direc.o \ dist.o \ edger.o \ edit.o \ empend.o \ empire.o \ enemym.o \ expl.o \ fatal.o \ fght.o \ fighmv.o \ fightr.o \ find.o \ game.o \ gen.o \ getc.o \ getcq.o \ head.o \ help.o \ hits.o \ huh.o \ icorr.o \ idist.o \ initia.o \ iphase.o \ iport.o \ iscape.o \ ittype.o \ jiggle.o \ kline.o \ ltr.o \ makeland.o \ mov.o \ movcor.o \ mve.o \ order.o \ path.o \ phasin.o \ poschk.o \ priori.o \ prod.o \ putc.o \ read.o \ round.o \ scrchk.o \ sector.o \ sensor.o \ set.o \ shipmv.o \ sonar.o \ stasis.o \ strlen.o \ strout.o \ strpos.o \ test4.o \ tran.o \ troopm.o \ ver.o \ write.o PRINT = pr PROGRAM = emp SRCS = addidt.f \ addrock.f \ addsts.f \ armcnt.f \ armjmp.f \ armyen.f \ armymv.f \ attack.c \ bell.c \ block.f \ bufpos.c \ c.c \ carier.f \ citfnd.c \ cityct.f \ cityph.f \ compar.f \ contained.c \ cost.f \ cursor.f \ data.c \ decode.f \ delay.c \ direc.c \ dist.c \ edger.c \ edit.f \ empend.c \ empire.f \ enemym.f \ expl.f \ fatal.f \ fght.f \ fighmv.f \ fightr.f \ find.f \ game.f \ gen.f \ getc.c \ getcq.c \ head.f \ help.f \ hits.c \ huh.c \ icorr.c \ idist.c \ initia.f \ iphase.c \ iport.f \ iscape.f \ ittype.f \ jiggle.f \ kline.c \ ltr.f \ makeland.f \ mov.f \ movcor.f \ mve.f \ order.c \ path.f \ phasin.f \ poschk.f \ priori.f \ prod.f \ putc.c \ read.f \ round.f \ scrchk.f \ sector.f \ sensor.f \ set.f \ shipmv.f \ sonar.f \ stasis.f \ strlen.f \ strout.c \ strpos.f \ test4.f \ tran.f \ troopm.f \ ver.c \ write.f all: $(PROGRAM) $(PROGRAM): $(OBJS) $(LIBS) @echo Loading $(PROGRAM) @$(LINKER) $(OBJS) $(LIBS) $(LDFLAGS) -o $(PROGRAM) @echo "done" clean:; @rm -f $(OBJS) depend:; @mkmf -f $(MAKEFILE) PROGRAM=$(PROGRAM) DEST=$(DEST) index:; @ctags -wx $(HDRS) $(SRCS) install: $(PROGRAM) @echo Installing $(PROGRAM) in $(DEST) @install -s $(PROGRAM) $(DEST) print:; @$(PRINT) $(HDRS) $(SRCS) program: $(PROGRAM) tags: $(HDRS) $(SRCS); @ctags $(HDRS) $(SRCS) update: $(DEST)/$(PROGRAM) $(DEST)/$(PROGRAM): $(SRCS) $(LIBS) $(HDRS) $(EXTHDRS) @make -f $(MAKEFILE) DEST=$(DEST) install ### addsts.o: common.h armcnt.o: common.h armjmp.o: common.h armyen.o: common.h armymv.o: common.h block.o: common.h bufpos.o: /usr/include/curses.h /usr/include/stdio.h /usr/include/sgtty.h \ /usr/include/sys/ioctl.h /usr/include/sys/ttychars.h \ /usr/include/sys/ttydev.h c.o: /usr/include/curses.h /usr/include/stdio.h /usr/include/sgtty.h \ /usr/include/sys/ioctl.h /usr/include/sys/ttychars.h \ /usr/include/sys/ttydev.h /usr/include/ctype.h carier.o: common.h citfnd.o: c_common.h cityct.o: common.h cityph.o: common.h data.o: c_common.h delay.o: /usr/include/stdio.h /usr/include/sys/time.h dist.o: c_common.h edger.o: c_common.h edit.o: common.h empire.o: common.h enemym.o: common.h expl.o: common.h fght.o: common.h fighmv.o: common.h fightr.o: common.h find.o: common.h game.o: common.h gen.o: common.h head.o: common.h idist.o: /usr/include/math.h initia.o: common.h iport.o: common.h jiggle.o: common.h ltr.o: common.h makeland.o: common.h mov.o: common.h movcor.o: common.h mve.o: common.h order.o: /usr/include/stdio.h path.o: common.h phasin.o: common.h poschk.o: common.h priori.o: common.h prod.o: common.h read.o: common.h scrchk.o: common.h sector.o: common.h sensor.o: common.h shipmv.o: common.h sonar.o: common.h stasis.o: common.h strout.o: /usr/include/curses.h /usr/include/stdio.h /usr/include/sgtty.h \ /usr/include/sys/ioctl.h /usr/include/sys/ttychars.h \ /usr/include/sys/ttydev.h test4.o: common.h troopm.o: common.h write.o: common.h SHAR_EOF if test 4609 -ne "`wc -c < 'Makefile'`" then echo shar: error transmitting "'Makefile'" '(should have been 4609 characters)' fi fi # end of overwriting check if test -f 'addidt.f' then echo shar: will not over-write existing file "'addidt.f'" else cat << \SHAR_EOF > 'addidt.f' ccc addidt - identify peice and add to string ccc addpei - add peice to string subroutine addidt ( own, string, iptr ) character own, string ( 80 ) integer iptr c c synopsis c c call addidt ( own, string, iptr ) c if ((own.ge.'a').and.(own.le.'t')) * call addstr ( 'Enemy ', string, iptr ) if ((own.le.'T').and.(own.ge.'A')) * call addstr ( 'Your ', string, iptr ) c call addpei ( own, string, iptr ) entry addpei ( own, string, iptr ) i = 99 c comment In case it doesn't exist if ((own.eq.'A').or.(own.eq.'a')) i = 2 if ((own.eq.'F').or.(own.eq.'f')) i = 3 if ((own.eq.'D').or.(own.eq.'d')) i = 4 if ((own.eq.'S').or.(own.eq.'s')) i = 5 if ((own.eq.'T').or.(own.eq.'t')) i = 6 if ((own.eq.'R').or.(own.eq.'r')) i = 7 if ((own.eq.'C').or.(own.eq.'c')) i = 8 if ((own.eq.'B').or.(own.eq.'b')) i = 9 call addfoo ( i, string, iptr ) return end SHAR_EOF if test 874 -ne "`wc -c < 'addidt.f'`" then echo shar: error transmitting "'addidt.f'" '(should have been 874 characters)' fi fi # end of overwriting check if test -f 'make.out' then echo shar: will not over-write existing file "'make.out'" else cat << \SHAR_EOF > 'make.out' f77 -c addrock.f addrock.f: addrock: entry addfoo: f77 -c addsts.f addsts.f: addsts: Warning on line 71 of addsts.f: local variable e never used Warning on line 71 of addsts.f: local variable ab never used Warning on line 71 of addsts.f: local variable ac never used Warning on line 71 of addsts.f: local variable ad never used Warning on line 71 of addsts.f: local variable ao never used Warning on line 71 of addsts.f: local variable own never used Warning on line 71 of addsts.f: local variable own1 never used Warning on line 71 of addsts.f: local variable own2 never used f77 -c armcnt.f armcnt.f: armcnt: Warning on line 19 of armcnt.f: local variable e never used Warning on line 19 of armcnt.f: local variable ab never used Warning on line 19 of armcnt.f: local variable ac never used Warning on line 19 of armcnt.f: local variable ad never used Warning on line 19 of armcnt.f: local variable ao never used Warning on line 19 of armcnt.f: local variable own never used Warning on line 19 of armcnt.f: local variable own1 never used Warning on line 19 of armcnt.f: local variable own2 never used f77 -c armjmp.f armjmp.f: armjmp: Warning on line 41 of armjmp.f: local variable e never used Warning on line 41 of armjmp.f: local variable ac never used Warning on line 41 of armjmp.f: local variable ad never used Warning on line 41 of armjmp.f: local variable ao never used Warning on line 41 of armjmp.f: local variable own never used Warning on line 41 of armjmp.f: local variable own1 never used Warning on line 41 of armjmp.f: local variable own2 never used f77 -c armyen.f armyen.f: armyen: Warning on line 325 of armyen.f: local variable e never used Warning on line 325 of armyen.f: local variable ad never used Warning on line 325 of armyen.f: local variable ao never used Warning on line 325 of armyen.f: local variable own never used f77 -c armymv.f armymv.f: armymv: Warning on line 215 of armymv.f: illegal branch to inner block, statement 1000 Warning on line 216 of armymv.f: local variable own never used cc -g -c attack.c cc -g -c bell.c f77 -c block.f block.f: block: Warning on line 30 of block.f: implicit conversion of character to numeric type Warning on line 45 of block.f: local variable e never used Warning on line 45 of block.f: local variable ac never used Warning on line 45 of block.f: local variable ad never used Warning on line 45 of block.f: local variable ao never used Warning on line 45 of block.f: local variable own never used Warning on line 45 of block.f: local variable own1 never used Warning on line 45 of block.f: local variable own2 never used cc -g -c bufpos.c cc -g -c c.c f77 -c carier.f carier.f: carier: Warning on line 189 of carier.f: local variable e never used Warning on line 189 of carier.f: local variable ac never used Warning on line 189 of carier.f: local variable ao never used Warning on line 189 of carier.f: local variable own never used cc -g -c citfnd.c f77 -c cityct.f cityct.f: cityct: Warning on line 29 of cityct.f: local variable e never used Warning on line 29 of cityct.f: local variable ab never used Warning on line 29 of cityct.f: local variable ac never used Warning on line 29 of cityct.f: local variable ad never used Warning on line 29 of cityct.f: local variable ao never used Warning on line 29 of cityct.f: local variable own never used Warning on line 29 of cityct.f: local variable own1 never used Warning on line 29 of cityct.f: local variable own2 never used f77 -c cityph.f cityph.f: cityph: Warning on line 125 of cityph.f: local variable ab never used Warning on line 125 of cityph.f: local variable ac never used Warning on line 125 of cityph.f: local variable ad never used Warning on line 125 of cityph.f: local variable ao never used Warning on line 125 of cityph.f: local variable own never used Warning on line 125 of cityph.f: local variable own1 never used Warning on line 125 of cityph.f: local variable own2 never used f77 -c compar.f compar.f: compar: cc -g -c contained.c f77 -c cost.f cost.f: cost: f77 -c cursor.f cursor.f: cursor: cc -g -c data.c f77 -c decode.f decode.f: decode: cc -g -c delay.c cc -g -c direc.c cc -g -c dist.c cc -g -c edger.c f77 -c edit.f edit.f: edit: Warning on line 58 of edit.f: implicit conversion of character to numeric type Warning on line 65 of edit.f: implicit conversion of character to numeric type Warning on line 380 of edit.f: local variable ac never used Warning on line 380 of edit.f: local variable ad never used Warning on line 380 of edit.f: local variable ao never used Warning on line 380 of edit.f: local variable own never used Warning on line 380 of edit.f: local variable own1 never used cc -g -c empend.c f77 -c empire.f empire.f: MAIN empire: Warning on line 523 of empire.f: local variable ab never used Warning on line 523 of empire.f: local variable ac never used Warning on line 523 of empire.f: local variable ad never used Warning on line 523 of empire.f: local variable ao never used Warning on line 523 of empire.f: local variable own never used Warning on line 523 of empire.f: local variable own1 never used Warning on line 523 of empire.f: local variable own2 never used Warning on line 523 of empire.f: local variable status never used f77 -c enemym.f enemym.f: enemym: Warning on line 213 of enemym.f: local variable e never used Warning on line 213 of enemym.f: local variable ac never used Warning on line 213 of enemym.f: local variable ao never used Warning on line 213 of enemym.f: local variable own never used f77 -c expl.f expl.f: expl: Warning on line 30 of expl.f: local variable e never used Warning on line 30 of expl.f: local variable ab never used Warning on line 30 of expl.f: local variable ac never used Warning on line 30 of expl.f: local variable ad never used Warning on line 30 of expl.f: local variable ao never used Warning on line 30 of expl.f: local variable own never used Warning on line 30 of expl.f: local variable own1 never used Warning on line 30 of expl.f: local variable own2 never used f77 -c fatal.f fatal.f: fatal: f77 -c fght.f fght.f: fght: Warning on line 54 of fght.f: local variable e never used Warning on line 54 of fght.f: local variable ab never used Warning on line 54 of fght.f: local variable ac never used Warning on line 54 of fght.f: local variable ad never used Warning on line 54 of fght.f: local variable ao never used f77 -c fighmv.f fighmv.f: fighmv: Warning on line 168 of fighmv.f: illegal branch to inner block, statement 1200 Warning on line 169 of fighmv.f: local variable e never used Warning on line 169 of fighmv.f: local variable own never used f77 -c fightr.f fightr.f: fightr: Warning on line 288 of fightr.f: local variable e never used Warning on line 288 of fightr.f: local variable ad never used Warning on line 288 of fightr.f: local variable ao never used Warning on line 288 of fightr.f: local variable own never used f77 -c find.f find.f: find: Warning on line 92 of find.f: local variable e never used Warning on line 92 of find.f: local variable ab never used Warning on line 92 of find.f: local variable ac never used Warning on line 92 of find.f: local variable ad never used Warning on line 92 of find.f: local variable ao never used Warning on line 92 of find.f: local variable own1 never used Warning on line 92 of find.f: local variable own2 never used f77 -c game.f game.f: game: Warning on line 237 of game.f: local variable ab never used Warning on line 237 of game.f: local variable ac never used Warning on line 237 of game.f: local variable ad never used Warning on line 237 of game.f: local variable ao never used Warning on line 237 of game.f: local variable own never used Warning on line 237 of game.f: local variable own1 never used Warning on line 237 of game.f: local variable own2 never used f77 -c gen.f gen.f: gen: Warning on line 152 of gen.f: local variable e never used Warning on line 152 of gen.f: local variable ab never used Warning on line 152 of gen.f: local variable ac never used Warning on line 152 of gen.f: local variable ad never used Warning on line 152 of gen.f: local variable ao never used Warning on line 152 of gen.f: local variable own never used Warning on line 152 of gen.f: local variable own1 never used Warning on line 152 of gen.f: local variable own2 never used cc -g -c getc.c cc -g -c getcq.c f77 -c head.f head.f: head: Warning on line 43 of head.f: local variable e never used Warning on line 43 of head.f: local variable ab never used Warning on line 43 of head.f: local variable ac never used Warning on line 43 of head.f: local variable ad never used Warning on line 43 of head.f: local variable ao never used Warning on line 43 of head.f: local variable own never used Warning on line 43 of head.f: local variable own2 never used f77 -c help.f help.f: help: cc -g -c hits.c cc -g -c huh.c cc -g -c icorr.c cc -g -c idist.c f77 -c initia.f initia.f: initia: Warning on line 22 of initia.f: local variable e never used Warning on line 22 of initia.f: local variable ab never used Warning on line 22 of initia.f: local variable ac never used Warning on line 22 of initia.f: local variable ad never used Warning on line 22 of initia.f: local variable ao never used Warning on line 22 of initia.f: local variable own never used Warning on line 22 of initia.f: local variable own1 never used Warning on line 22 of initia.f: local variable own2 never used cc -g -c iphase.c f77 -c iport.f iport.f: iport: Warning on line 21 of iport.f: local variable e never used Warning on line 21 of iport.f: local variable ab never used Warning on line 21 of iport.f: local variable ac never used Warning on line 21 of iport.f: local variable ad never used Warning on line 21 of iport.f: local variable ao never used Warning on line 21 of iport.f: local variable own never used Warning on line 21 of iport.f: local variable own1 never used Warning on line 21 of iport.f: local variable own2 never used f77 -c iscape.f iscape.f: iscape: f77 -c ittype.f ittype.f: ittype: f77 -c jiggle.f jiggle.f: jiggle: Warning on line 43 of jiggle.f: local variable e never used Warning on line 43 of jiggle.f: local variable ab never used Warning on line 43 of jiggle.f: local variable ac never used Warning on line 43 of jiggle.f: local variable ad never used Warning on line 43 of jiggle.f: local variable ao never used Warning on line 43 of jiggle.f: local variable own never used Warning on line 43 of jiggle.f: local variable own1 never used Warning on line 43 of jiggle.f: local variable own2 never used cc -g -c kline.c f77 -c ltr.f ltr.f: ltr: Warning on line 27 of ltr.f: implicit conversion of character to numeric type Warning on line 30 of ltr.f: implicit conversion of character to numeric type Warning on line 51 of ltr.f: implicit conversion of character to numeric type Warning on line 60 of ltr.f: local variable e never used Warning on line 60 of ltr.f: local variable ab never used Warning on line 60 of ltr.f: local variable ac never used Warning on line 60 of ltr.f: local variable ad never used Warning on line 60 of ltr.f: local variable ao never used Warning on line 60 of ltr.f: local variable own never used Warning on line 60 of ltr.f: local variable own1 never used Warning on line 60 of ltr.f: local variable own2 never used f77 -c makeland.f makeland.f: makeland: Warning on line 36 of makeland.f: local variable e never used Warning on line 36 of makeland.f: local variable ab never used Warning on line 36 of makeland.f: local variable ac never used Warning on line 36 of makeland.f: local variable ad never used Warning on line 36 of makeland.f: local variable ao never used Warning on line 36 of makeland.f: local variable own never used Warning on line 36 of makeland.f: local variable own1 never used Warning on line 36 of makeland.f: local variable own2 never used f77 -c mov.f mov.f: mov: Warning on line 80 of mov.f: local variable e never used Warning on line 80 of mov.f: local variable ab never used Warning on line 80 of mov.f: local variable ac never used Warning on line 80 of mov.f: local variable ad never used Warning on line 80 of mov.f: local variable ao never used Warning on line 80 of mov.f: local variable own never used Warning on line 80 of mov.f: local variable own1 never used Warning on line 80 of mov.f: local variable own2 never used f77 -c movcor.f movcor.f: movcor: Warning on line 127 of movcor.f: local variable e never used Warning on line 127 of movcor.f: local variable ac never used Warning on line 127 of movcor.f: local variable ad never used Warning on line 127 of movcor.f: local variable ao never used Warning on line 127 of movcor.f: local variable own never used Warning on line 127 of movcor.f: local variable own2 never used f77 -c mve.f mve.f: mve: Warning on line 251 of mve.f: local variable ab never used Warning on line 251 of mve.f: local variable ac never used Warning on line 251 of mve.f: local variable ad never used Warning on line 251 of mve.f: local variable ao never used Warning on line 251 of mve.f: local variable own never used Warning on line 251 of mve.f: local variable own2 never used cc -g -c order.c f77 -c path.f path.f: path: Warning on line 109 of path.f: local variable e never used Warning on line 109 of path.f: local variable ac never used Warning on line 109 of path.f: local variable ad never used Warning on line 109 of path.f: local variable ao never used Warning on line 109 of path.f: local variable own never used Warning on line 109 of path.f: local variable own1 never used Warning on line 109 of path.f: local variable own2 never used f77 -c phasin.f phasin.f: phasin: Warning on line 21 of phasin.f: local variable ab never used Warning on line 21 of phasin.f: local variable ac never used Warning on line 21 of phasin.f: local variable ad never used Warning on line 21 of phasin.f: local variable ao never used Warning on line 21 of phasin.f: local variable own never used Warning on line 21 of phasin.f: local variable own1 never used Warning on line 21 of phasin.f: local variable own2 never used f77 -c poschk.f poschk.f: poschk: Warning on line 32 of poschk.f: local variable e never used Warning on line 32 of poschk.f: local variable ab never used Warning on line 32 of poschk.f: local variable ac never used Warning on line 32 of poschk.f: local variable ad never used Warning on line 32 of poschk.f: local variable ao never used Warning on line 32 of poschk.f: local variable own1 never used Warning on line 32 of poschk.f: local variable own2 never used f77 -c priori.f priori.f: priori: Warning on line 71 of priori.f: local variable e never used Warning on line 71 of priori.f: local variable ad never used Warning on line 71 of priori.f: local variable ao never used Warning on line 71 of priori.f: local variable own never used Warning on line 71 of priori.f: local variable own1 never used Warning on line 71 of priori.f: local variable own2 never used f77 -c prod.f prod.f: prod: Warning on line 29 of prod.f: local variable e never used Warning on line 29 of prod.f: local variable ab never used Warning on line 29 of prod.f: local variable ac never used Warning on line 29 of prod.f: local variable ad never used Warning on line 29 of prod.f: local variable ao never used Warning on line 29 of prod.f: local variable own never used Warning on line 29 of prod.f: local variable own1 never used Warning on line 29 of prod.f: local variable own2 never used cc -g -c putc.c f77 -c read.f read.f: read: Warning on line 18 of read.f: local variable e never used Warning on line 18 of read.f: local variable ab never used Warning on line 18 of read.f: local variable ac never used Warning on line 18 of read.f: local variable ad never used Warning on line 18 of read.f: local variable ao never used Warning on line 18 of read.f: local variable own never used Warning on line 18 of read.f: local variable own1 never used Warning on line 18 of read.f: local variable own2 never used f77 -c round.f round.f: round: Warning on line 27 of round.f: local variable e never used Warning on line 27 of round.f: local variable ab never used Warning on line 27 of round.f: local variable ac never used Warning on line 27 of round.f: local variable ad never used Warning on line 27 of round.f: local variable ao never used Warning on line 27 of round.f: local variable own never used Warning on line 27 of round.f: local variable own1 never used Warning on line 27 of round.f: local variable own2 never used f77 -c scrchk.f scrchk.f: scrchk: Warning on line 28 of scrchk.f: local variable e never used Warning on line 28 of scrchk.f: local variable ab never used Warning on line 28 of scrchk.f: local variable ac never used Warning on line 28 of scrchk.f: local variable ad never used Warning on line 28 of scrchk.f: local variable ao never used Warning on line 28 of scrchk.f: local variable own never used Warning on line 28 of scrchk.f: local variable own1 never used Warning on line 28 of scrchk.f: local variable own2 never used f77 -c sector.f sector.f: sector: Warning on line 57 of sector.f: implicit conversion of character to numeric type Warning on line 65 of sector.f: implicit conversion of character to numeric type Warning on line 138 of sector.f: local variable e never used Warning on line 138 of sector.f: local variable ac never used Warning on line 138 of sector.f: local variable ad never used Warning on line 138 of sector.f: local variable ao never used Warning on line 138 of sector.f: local variable own never used Warning on line 138 of sector.f: local variable own1 never used Warning on line 138 of sector.f: local variable own2 never used f77 -c sensor.f sensor.f: sensor: Warning on line 32 of sensor.f: local variable e never used Warning on line 32 of sensor.f: local variable ac never used Warning on line 32 of sensor.f: local variable ad never used Warning on line 32 of sensor.f: local variable ao never used Warning on line 32 of sensor.f: local variable own never used Warning on line 32 of sensor.f: local variable own1 never used Warning on line 32 of sensor.f: local variable own2 never used f77 -c set.f set.f: set: Warning on line 56 of set.f: local variable e never used Warning on line 56 of set.f: local variable ab never used Warning on line 56 of set.f: local variable ac never used Warning on line 56 of set.f: local variable ad never used Warning on line 56 of set.f: local variable ao never used Warning on line 56 of set.f: local variable own never used Warning on line 56 of set.f: local variable own1 never used Warning on line 56 of set.f: local variable own2 never used f77 -c shipmv.f shipmv.f: shipmv: Warning on line 201 of shipmv.f: illegal branch to inner block, statement 900 Warning on line 203 of shipmv.f: local variable e never used Warning on line 203 of shipmv.f: local variable own never used f77 -c sonar.f sonar.f: sonar: Warning on line 95 of sonar.f: local variable e never used Warning on line 95 of sonar.f: local variable ac never used Warning on line 95 of sonar.f: local variable ad never used Warning on line 95 of sonar.f: local variable ao never used Warning on line 95 of sonar.f: local variable own never used Warning on line 95 of sonar.f: local variable own1 never used Warning on line 95 of sonar.f: local variable own2 never used f77 -c stasis.f stasis.f: stasis: Warning on line 21 of stasis.f: local variable e never used Warning on line 21 of stasis.f: local variable ac never used Warning on line 21 of stasis.f: local variable ad never used Warning on line 21 of stasis.f: local variable ao never used Warning on line 21 of stasis.f: local variable own never used Warning on line 21 of stasis.f: local variable own1 never used Warning on line 21 of stasis.f: local variable own2 never used f77 -c strlen.f strlen.f: strlen: cc -g -c strout.c f77 -c strpos.f strpos.f: strpos: f77 -c test4.f test4.f: test4: Warning on line 16 of test4.f: implicit conversion of character to numeric type Warning on line 19 of test4.f: implicit conversion of character to numeric type Warning on line 47 of test4.f: local variable ab never used Warning on line 47 of test4.f: local variable ac never used Warning on line 47 of test4.f: local variable ad never used Warning on line 47 of test4.f: local variable ao never used Warning on line 47 of test4.f: local variable own never used Warning on line 47 of test4.f: local variable own1 never used Warning on line 47 of test4.f: local variable own2 never used f77 -c tran.f tran.f: tran: f77 -c troopm.f troopm.f: troopm: Warning on line 285 of troopm.f: local variable e never used Warning on line 285 of troopm.f: local variable ad never used Warning on line 285 of troopm.f: local variable ao never used Warning on line 285 of troopm.f: local variable own never used cc -g -c ver.c f77 -c write.f write.f: write: Warning on line 18 of write.f: local variable e never used Warning on line 18 of write.f: local variable ab never used Warning on line 18 of write.f: local variable ac never used Warning on line 18 of write.f: local variable ad never used Warning on line 18 of write.f: local variable ao never used Warning on line 18 of write.f: local variable own never used Warning on line 18 of write.f: local variable own1 never used Warning on line 18 of write.f: local variable own2 never used Loading emp done SHAR_EOF if test 21590 -ne "`wc -c < 'make.out'`" then echo shar: error transmitting "'make.out'" '(should have been 21590 characters)' fi fi # end of overwriting check if test -f 'addrock.f' then echo shar: will not over-write existing file "'addrock.f'" else cat << \SHAR_EOF > 'addrock.f' ccc addrock - copy peice into buffer ccc addfoo - copy peice into buffer with extra character(s) subroutine addrock ( peice, string, ptr ) integer peice, ptr c character string ( 80 ) character string ( 80 ) c c synopsis c c call addrock ( peice, string, ptr ) c call addfoo ( peice, string, ptr ) c c peice - integer value of peice c string - character array to put string into c ptr - pointer to next unused element in string c if ( peice .eq. 2 ) call addstr ( 'n', string, ptr ) call addstr ( ' ', string, ptr ) entry addfoo ( peice, string, ptr ) goto ( 100, 200, 300, 400, 500, 600, 700, 800, 900 ) peice call addstr ( 'steam beer', string, ptr ) 100 return 200 call addstr ( 'army', string, ptr ) return 300 call addstr ( 'fighter', string, ptr ) return 400 call addstr ( 'destroyer', string, ptr ) return 500 call addstr ( 'submarine', string, ptr ) return 600 call addstr ( 'troop transport', string, ptr ) return 700 call addstr ( 'cruiser', string, ptr ) return 800 call addstr ( 'aircraft carrier', string, ptr ) return 900 call addstr ( 'battleship', string, ptr ) return end SHAR_EOF if test 1112 -ne "`wc -c < 'addrock.f'`" then echo shar: error transmitting "'addrock.f'" '(should have been 1112 characters)' fi fi # end of overwriting check if test -f 'common.h' then echo shar: will not over-write existing file "'common.h'" else cat << \SHAR_EOF > 'common.h' PARAMETER (IAR=0,IFI=500,IDE=700,ISU=900,ITT=1100, 1 ICR=1200,ICA=1300,IBA=1400) PARAMETER (IAR2=1500,IFI2=2000,IDE2=2200,ISU2=2400,ITT2=2600, 1 ICR2=2700,ICA2=2800,IBA2=2900) PARAMETER (IDEH=0,ISUH=200,ITTH=400,ICRH=500,ICAH=600,IBAH=700) PARAMETER (IDE2H=800,ISU2H=1000,ITT2H=1200,ICR2H=1300, 1 ICA2H=1400,IBA2H=1500) INTEGER G2(100) INTEGER TIPE(15),CRAHIT(15),CRALOC(15) c HITS(15) integer x(70) INTEGER INDEX(15) INTEGER CMYTBL(9),KBFUDG(9) INTEGER LOPMAX(15),COMSCN(40) INTEGER NSHPRF(4,6) INTEGER PH(8),OVRPOP(16,2) INTEGER PRIOR(7) INTEGER RANGE(200),AR2S(500) INTEGER ARMTOT(20),CODEFU(1500),CODELA(1500),TARGET(70),LIMIT(16) INTEGER ARROW(9) INTEGER IARROW(10) INTEGER D2(3) INTEGER D(667) INTEGER MYCODE(1500) INTEGER RANG(200) INTEGER IOTAB(16) INTEGER PHAZEE(8) INTEGER owner(70) INTEGER found(70) INTEGER phase(70) INTEGER fipath(70) INTEGER loci(10,11) INTEGER number(18) INTEGER troopt(6,5) integer ptr logical SPECAL,PASS character submap(39,39) character AB,AC,AD,AO,E,OWN1,OWN2,OWN comment AVOID WORD REFERENCES TO THESE character KBTBL(9),AB9(9) character COMM(30),PHAZE(8) character IFILE(11),KILL character COMMAN(20),OKA(5),OKB(5),OKC(5) character*20 TTY integer MOVEDFLAG(1500) integer J1TS(1600) character EMAP(6000),RMAP(6000),PMAP(6000),OMAP(6000) character PAMELA(8),REEED(9) integer cities(128) character jnkbuf ( 80 ) INTEGER RLMAP(3000) LOGICAL AUTOMV COMMON /cols/cols COMMON /lines/lines COMMON /PRIOR/ PRIOR COMMON /NSHPRF/ NSHPRF COMMON /AB9/ AB9 COMMON /ARMTOT/ ARMTOT COMMON /COMSCN/ COMSCN COMMON /KBTBL/ KBTBL COMMON /COMMAN/ COMMAN COMMON /COMM/ COMM COMMON /IFILE/ IFILE COMMON /KILL/ KILL COMMON /TTY/ TTY COMMON /FOUND/ FOUND COMMON /OWNER/ OWNER COMMON /PHASE/ PHASE COMMON /CMYTBL/ CMYTBL COMMON /KBFUDG/ KBFUDG COMMON /CODER/ CODER COMMON /CODEFU/ CODEFU COMMON /CODELA/ CODELA c COMMON /HITS/ HITS COMMON /TIPE/ TIPE COMMON /CRAHIT/ CRAHIT COMMON /CRALOC/ CRALOC COMMON /FIPATH/ FIPATH COMMON /G2/ G2 COMMON /IARROW/ IARROW COMMON /ARROW/ ARROW COMMON /INDEX/ INDEX COMMON /LOPMAX/ LOPMAX COMMON /IOTAB/ IOTAB COMMON /J1TS/ J1TS COMMON /IADJST/ IADJST COMMON /D/ D COMMON /EMAP/ EMAP COMMON /RMAP/ RMAP COMMON /PMAP/ PMAP COMMON /RLMAP/ RLMAP COMMON /OMAP/ OMAP COMMON /TARGET/ TARGET COMMON /AR2S/ AR2S COMMON /RANGE/ RANGE COMMON /RANG/ RANG COMMON /LOCI/ LOCI COMMON /NUMBER/ NUMBER COMMON /LIMIT/ LIMIT COMMON /MDATE/ MDATE COMMON /VERSION/ VERSION COMMON /MODE/ MODE COMMON /JECTOR/ JECTOR COMMON /ISEC/ ISEC COMMON /NEWRND/ NEWRND COMMON /MOVEDFLAG/ MOVEDFLAG COMMON /D2/ D2 COMMON /MYCODE/ MYCODE COMMON /OKA/ OKA COMMON /OKB/ OKB COMMON /OKC/ OKC COMMON /OVRPOP/ OVRPOP COMMON /PHAZE/ PHAZE COMMON /PHAZEE/ PHAZEE COMMON /PH/ PH COMMON /PAMELA/ PAMELA COMMON /REEED/ REEED COMMON /PASS/ PASS COMMON /SPECAL/ SPECAL COMMON /AUTOMV/ AUTOMV COMMON /SAVBUF/ SAVBUF COMMON /STEP/ STEP COMMON /POSIT/ POSIT COMMON /START/ START COMMON /SUCCES/ SUCCES COMMON /FAILUR/ FAILUR COMMON /FULL/ FULL COMMON /TROOPT/ TROOPT COMMON /X/ X COMMON /jnkbuf/ jnkbuf COMMON /ptr/ ptr COMMON /CITIES/ CITIES COMMON /SUBMAP/SUBMAP C C AGGR: THIS IS A MEASURE OF THE ENEMY SHIPS AGGRESSIVENESS, C THIS VALUE IS ADDED TO THE COST-EFFECTIVENESS OF ATTACKING AN C ENEMY UNIT TO DETERMINE IF THE SHIP WILL ATTACK OR RUN FROM THE C ENEMY. C ALL CITIES ARE REFERENCED BY CITY NUMBER, AS IN X(N)=LOC OF CITY #N C CODFU/CODELA: CONTAINS A NUMBER THAT DETERMINES WHAT THAT COMPUTER CRAFT C IS ASSIGNED TO DO, IS SEPERATED INTO 2 NUMBERS, IFO AND ILA. IFO C GIVES THE FUNCTION, ILA GIVES DETAILS. C CODER: USED FOR DEBUG FLAG C CROWD: USED IF CITY IS SURROUNDED BY ARMIES C D: ORIGINAL MAP, ENCODED IN MOD 3 C EXPLOR: THIS IS SET TO 1 IF THE ENEMY SHIP IS TO EXPLORE UNKNOWN C TERRITORY ADJACENT TO IT, 0 IF NOT. C FIPATH: STASIS # TO BE GIVEN TO FIGHTER IN THAT CITY C FOUND: COMPLETION DATES FOR CITIES C IADJST: SUBTRACTED FROM Z6 SO CURSOR WILL NOT BE MOVED OFF SCREEN C IARROW: ADDED TO Z6 SO MOVES [1,2,3,4,5,6,7,8,9] ARE CONVERTED C TO [+1,-99,-100,-101,ETC.] C ISEC: SECTOR TERMINAL IS SHOWING C IZAP: .TRUE.=SAVE GAME, .FALSE.=INITIALIZE C JECTOR: SECTOR PROGRAM IS LOOKING AT C KURSOR: SET TO POSITION OF CURSOR C MODE: 1=IN MODE 2, 0=IN MODE 1 C OWNER: WHO OWNS THE CITY: 0>NOBODY, 1>PLAYER, 2>COMPUTER C PASS: SET TO .TRUE. IF IT IS A PRIVILEGED USER C PHASE: PHASE OF CITY C X: LOCATIONS OF CITIES C SHAR_EOF if test 4500 -ne "`wc -c < 'common.h'`" then echo shar: error transmitting "'common.h'" '(should have been 4500 characters)' fi fi # end of overwriting check if test -f 'addsts.f' then echo shar: will not over-write existing file "'addsts.f'" else cat << \SHAR_EOF > 'addsts.f' ccc addsts - display mycod function in english subroutine addsts ( mycod, string, iptr ) c c synopsis c c call addsts ( mycod, string, iptr ) c c mycod - function code c string - character array to add strings to c iptr - current length of string c IMPLICIT INTEGER(A-Z) include 'common.h' C c character string ( 80 ) character string ( 80 ) integer iptr call addstr ( 'Function: ', string, iptr ) c c Awake if mycod = 0 c if ( mycod .ne. 0 ) goto 100 call addstr ( 'awake', string, iptr ) return c c Sentry if 0 < mycod < 100 c 100 continue if (( mycod .le. 0 ) .or. ( mycod .ge. 100 )) goto 200 call addstr ( 'sentry', string, iptr ) return c c Random if mycod = 100 c 200 continue if ( mycod .ne. 100 ) goto 300 call addstr ( 'random', string, iptr ) return c c Aimed at a location if 100 < mycod < 6101 c 300 continue if (( mycod .le. 100 ) .or. ( mycod .ge. 6101 )) goto 400 call addint ( mycod, string, iptr ) return c c Set in a direction if 6101 <= mycod <= 6108 c 400 continue if (( mycod .lt. 6101 ) .or. ( mycod .gt. 6108 )) goto 500 iptr = iptr + 1 do 450 i = 6101, 6108 if ( i .eq. mycod ) string ( iptr ) = comm ( i - 6100 ) 450 continue return c c Fill if mycod = 9997 c 500 continue if ( mycod .ne. 9997 ) goto 600 call addstr ( 'fill', string, iptr ) return c c Not assigned a valid function; goofing off c 600 continue call addstr ( 'taking drugs', string, iptr ) return end SHAR_EOF if test 1427 -ne "`wc -c < 'addsts.f'`" then echo shar: error transmitting "'addsts.f'" '(should have been 1427 characters)' fi fi # end of overwriting check if test -f 'armcnt.f' then echo shar: will not over-write existing file "'armcnt.f'" else cat << \SHAR_EOF > 'armcnt.f' SUBROUTINE ARMCNT C IMPLICIT INTEGER(A-Z) include 'common.h' C C DO 100 I=1,20 100 ARMTOT(I)=0 DO 300 I=1,LIMIT(9) IF (CODEFU(I).NE.1) GOTO 300 ILA=CODELA(I) DO 200 I2=1,20 200 IF (TARGET(I2).EQ.ILA) ARMTOT(I2)=ARMTOT(I2)+1 300 CONTINUE RETURN END SHAR_EOF if test 261 -ne "`wc -c < 'armcnt.f'`" then echo shar: error transmitting "'armcnt.f'" '(should have been 261 characters)' fi fi # end of overwriting check if test -f 'armjmp.f' then echo shar: will not over-write existing file "'armjmp.f'" else cat << \SHAR_EOF > 'armjmp.f' function armjmp(z6,ar2sc) c c This subroutine determines whether or not an army should get off c the troop transport it is on. 0=no, 1=yes c IMPLICIT INTEGER(A-Z) include 'common.h' C armjmp=0 do 100 i=1,8 c comment not all sea surround 100 if (omap(z6+iarrow(i+1)).ne.'.') goto 200 return c comment been on troop transport 200 if (ar2sc.eq.0) goto 400 c comment for a long time do 300 i=1,8 loc=z6+iarrow(i+1) if (omap(loc).eq.'.') goto 300 if (order(loc).ne.0) goto 300 ab=rmap(loc) if ((ab.eq.'A').or.(ab.eq.'F')) goto 400 if ((ab.eq.'*').or.(ab.eq.'O')) goto 400 loc=z6+2*iarrow(i+1) ab=emap(loc) if (ab.eq.' ') goto 400 300 continue c comment don't jump return 400 armjmp=1 c comment jump return end SHAR_EOF if test 730 -ne "`wc -c < 'armjmp.f'`" then echo shar: error transmitting "'armjmp.f'" '(should have been 730 characters)' fi fi # end of overwriting check if test -f 'armyen.f' then echo shar: will not over-write existing file "'armyen.f'" else cat << \SHAR_EOF > 'armyen.f' subroutine armyen c c This subroutine handles enemy army moves c IMPLICIT INTEGER(A-Z) include 'common.h' C cc integer irand monkey=0 number(1)=0 if (coder.eq.1) print 999 999 format(' army codes') c c start army move loop c do 4200 y=1,limit(9) z6=rlmap(iar2+y) if (z6.eq.0) goto 4200 if (coder.eq.0) goto 200 ptr = 0 call addint ( y, jnkbuf, ptr ) call addstr ( ' ', jnkbuf, ptr ) call addint ( npath, jnkbuf, ptr ) npath=0 200 z7=z6 monkey=y c comment set dir to 1 or -1 dir=mod(y,2)*2-1 p=0 c comment set ab=what is showing where the army is ab=rmap(z6) ac= '\0' if ((ab.ne.'a').AND.(AB.NE.'t').and.(ab.ne.'X')) goto 3700 c c Age ar2s c if ((ar2s(y).le.100).or.(ar2s(y).gt.1000)) ar2s(y)=ar2s(y)-1 if ((ar2s(y).lt.0).or.(ar2s(y).eq.1000)) ar2s(y)=0 if (ab.eq.'a') goto 300 if (ab.eq.'X') then do 250 i=1,limit(13) if (rlmap(itt2+i).eq.z6) goto 270 250 continue goto 300 endif 270 if (armjmp(z6,ar2s(y)).eq.0) goto 4150 c c Move selection c 300 ifo=codefu(y) ila=codela(y) c c If a priority move exists, pick it and don't bother slugging c through code selection and move selection c move1=priori(z6,ifo,ila,dir,ab) if (move1.ne.0) goto 2400 c c ifo = 0 move in certain direction, or follow shore c ifo = 1 move towards target city c ifo = 2 move towards an enemy army c ifo = 3 move towards a troop transport c goto ( 400, 500, 600, 700 ) ifo + 1 c comment look for targets, loci, tt's 400 goto 800 500 if (rmap(ila).eq.'X') goto 800 c comment city has been captured goto 1600 c comment move 600 if (ila.eq.z6) goto 800 c comment arrived at enemy concentration goto 1600 c comment move 700 if (ila.gt.100) goto 800 c comment invalid value for ila if (codefu(ila+itt2-1500).ge.6) goto 1200 if (rlmap(ila+itt2).eq.0) goto 1200 c comment tt sunk if (j1ts(ila+itt2h).lt.3) goto 1200 c tt damaged goto 1700 c c Select a new code c 800 continue c c Look for target city c if (number(10).eq.0) goto 1050 ia=irand(number(10))+1 ib=ia+number(10)-1 do 1000 ic=ia,ib i=ic if (i.gt.number(10)) i=i-number(10) if (target(i).eq.0) goto 1000 if (idist(z6,target(i)).gt.14) goto 1000 move=path(z6,target(i),dir,okb,flag) npath=npath+1 if (flag.eq.0) goto 1000 c comment can't get to it ifo=1 ila=target(i) goto 1800 c comment move 1000 continue c c Look for an army that is on your continent c 1050 if (loci(10,11).ne.0) loci(10,11)=0 do 1100 i=1,10 temp=irand(10)+2 if (loci(i,temp).eq.0) temp=2 if (loci(i,temp).eq.0) goto 1100 temp=loci(i,temp) move=path(z6,temp,dir,okb,flag) npath=npath+1 if (flag.eq.0) goto 1100 ifo=2 ila=temp goto 1800 1100 continue c c Look for tt that is short of armies c 1200 if ((ar2s(y).ne.0) .or. (limit(13) .eq. 0)) goto 1400 c added or here c comment ineligible to get on a tt ia=irand(limit(13))+1 do 1300 ic=ia,ia+limit(13) i=ic if (i.gt.limit(13)) i=i-limit(13) if (rlmap(itt2+i).eq.0) goto 1300 c comment tt doesn't exist if (j1ts(itt2h+i).lt.3) goto 1300 c comment damaged, i.e. unsuitable if (iabs(codefu(itt2+i-1500)).ge.6) goto 1300 if (idist(z6,rlmap(itt2+i)).gt.20) goto 1300 c comment too far away move=path(z6,rlmap(itt2+i),dir,okb,flag) npath=npath+1 if (flag.eq.0) goto 1300 comment can't get to it move=mov(z6,rlmap(itt2+i)) ifo=3 ila=i codela(itt2+i-1500)=y goto 1800 1300 continue c c Pick a random direction (ifo=0) c 1400 if ((ifo.eq.0).and.(ila.ne.0)) goto 1500 comment if already ass'd direc ifo=0 ila=irand(8)+1 comment ** 1500 move=ila i1=icorr(move-dir*3) if (rmap(z6+iarrow(i1+1)).ne.'+') move=i1 comment ** goto 1800 1600 move=path(z6,ila,dir,okb,flag) npath=npath+1 if (flag.eq.0) goto 1400 goto 1800 1700 move=path(z6,rlmap(ila+itt2),dir,okb,flag) npath=npath+1 1800 do 2300 i=0,7*dir,dir move1=icorr(move+i) loc=z6+iarrow(move1+1) comment ** ac=rmap(loc) if (ac.ne.'t') goto 2200 if (ifo.eq.3) ifo=0 if (ar2s(y).ne.0) goto 2300 numarm=0 do 1900 iz=itt2+1,limit(13)+itt2 1900 if (rlmap(iz).eq.loc) goto 2000 2000 if (j1ts(itt2h-itt2+iz).lt.3) goto 2300 do 2100 iy=iar2+1,limit(9)+iar2 if (rlmap(iy).eq.loc) numarm=numarm+1 2100 if (numarm.ge.6) goto 2300 goto 2400 2200 if ((ac.eq.'+').and.(order(loc).eq.0)) goto 2400 2300 continue move1=0 c 2400 if (ifo.eq.0) ila=iabs(move1) codefu(y)=ifo codela(y)=ila if (coder.eq.1) print 998,ifo,ila 998 format(1x,7i,3x) z6=z6+iarrow(move1+1) comment ** c ac=rmap(z6) if (ab.ne.'t') goto 2500 if (ac.eq.'t') goto 3600 codefu(y)=0 codela(y)=0 ar2s(y)=1020 goto 2600 2500 if (omap(z7).ne.'*') rmap(z7)=omap(z7) if (ac.ne.'t') goto 2600 ar2s(y)=100 goto 3600 2600 if (ac.eq.'+') goto 3500 if ((ac.eq.'X').or.(ac.eq.'.')) goto 3700 if (omap(z6).ne.'*') goto 3400 if (irand(100).lt.50) then id=10 do 2650 i=1,limit(9) if (rlmap(iar2+i).eq.0) goto 2650 if (i.eq.y) goto 2650 if (codefu(i).ne.0) goto 2650 if (idist(rlmap(iar2+i),z6).ge.id) goto 2650 move=path(rlmap(iar2+i),z6,1,okb,flag) npath=npath+1 if (flag.eq.0) goto 2650 comment can't get to it id=idist(rlmap(iar2+i),z6) iy=i 2650 continue if (id.lt.10) then ifo=1 ila=z6 endif goto 3700 endif do 2700 i=1,70 2700 if (target(i).eq.z6) target(i)=0 do 2800 i=1,limit(9) 2800 if (codefu(i).ne.1.or.codela(i).ne.z6) goto 2900 codefu(i)=0 codela(i)=0 2900 do 3000 i=1,100 3000 if (x(i).eq.z6) goto 3100 3100 owner(i)=2 phase(i)=0 if (((ac.eq.'O').or.(ar2s(y).gt.0)).and.(edger(z6).lt.8)) * phase(i)=-1 if (ac.ne.'O') goto 3200 ptr = 0 call addstr ( 'City at ', jnkbuf, ptr ) call addint ( z6, jnkbuf, ptr ) call addstr ( ' surrendered to enemy forces', jnkbuf, ptr ) jnkbuf ( ptr + 1 ) = '\0' call topmsg ( 3, jnkbuf ) call cflush call delay(30) rmap(z6)='X' call sensor(z6) goto 3700 3200 rmap(z6)='X' goto 3700 3300 ar2s(y)=100 goto 3600 3400 h1=1 if (z7.eq.z6) goto 3600 997 format(1h+,/,' Error: attacked ',a1,4i,1x) p=1 own1='a' own2=ac h2=30 call find(own2,z6,z8,h2) call fght(z6,h1,h2,own1,own2) call find(own2,z6,z8,h2) if (h1.le.0) goto 3700 rmap(z6)=omap(z6) if (rmap(z6).eq.'.') goto 3700 3500 rmap(z6)='a' 3600 rlmap(iar2+y)=z6 if (p.eq.1) call sensor(z6) goto 4100 3700 rlmap(iar2+y)=0 if (ac.ne.'X') goto 3900 do 3800 i=1,70 3800 if (x(i).eq.z6) phase(i)=0 3900 if (p.eq.1) call sensor(z6) if (rmap(z6).ne.'O') goto 4000 ptr = 0 call addstr ( 'City at ', jnkbuf, ptr ) call addint ( z6, jnkbuf, ptr ) call addstr ( ' repelled enemy invasion', jnkbuf, ptr ) jnkbuf(ptr + 1) = '\0' call topmsg ( 3, jnkbuf ) call cflush call delay(30) 4000 codefu(y)=0 codela(y)=0 ar2s(y)=0 4100 call sonar(z6) 4150 if (rlmap(iar2+y).ne.0) number(1)=number(1)+1 4200 continue limit(9)=monkey return end SHAR_EOF if test 6667 -ne "`wc -c < 'armyen.f'`" then echo shar: error transmitting "'armyen.f'" '(should have been 6667 characters)' fi fi # end of overwriting check if test -f 'armymv.f' then echo shar: will not over-write existing file "'armymv.f'" else cat << \SHAR_EOF > 'armymv.f' subroutine armymv c c This routine handles player's army moves c IMPLICIT INTEGER(A-Z) include 'common.h' C logical fatal iturn = 1 do 2700 y = 1, limit (1) if (movedflag(y) .ne. 0) goto 2700 z6 = rlmap(y) if (z6 .eq. 0) goto 2700 mycod = mycode(y) if ((mode.eq.1).and.(poschk(z6,'A').eq.0)) goto 2700 movedflag(y)=1 z7=z6 ab=rmap(z6) if ((ab.eq.'A').or.(ab.eq.'T').or.(ab.eq.'O')) goto 200 100 continue ptr = 0 call addstr('Army # ', jnkbuf, ptr) call addint(y, jnkbuf, ptr) call addstr(' destroyed', jnkbuf, ptr) jnkbuf(ptr + 1) = '\0' call topmsg(3, jnkbuf) call cflush call delay(30) goto 2500 200 if (ab.ne.'T') goto 400 do 300 i=1,8 if (rmap(z6+iarrow(i+1)).eq.'T') goto 400 300 if (omap(z6+iarrow(i+1)).ne.'.') goto 400 comment don't ask if nowhere to go goto 2700 400 if (mycod .eq. 0) goto 1000 if (mycod .ne. 100) goto 500 z6 = z6 + iarrow(jiggle(z6, y) + 1) comment do random move goto 1200 500 call stasis(z6,y) comment wake up if near enemy 600 mycod=mycode(y) if (mycod.eq.0) goto 1000 if ((mycod.lt.100).or.(mycod.gt.6108)) goto 1200 if (mycod.gt.6100) goto 800 if (mycod.le.6000) goto 700 goto 1200 700 z6=z6+iarrow(mov(z6,mycod)+1) comment do a move toward a location goto 900 800 z6=z6+iarrow(mycod-6100+1) comment do direction moves 900 ad = rmap(z6) if (((ad.eq.'+').or.(ad.eq.'T')).and.(order(z6).eq.0)) goto 1200 z6=z7 1000 call sector(pmap(1)) call ltr(z6,iturn) 1100 call mve('A',mdate,y,y,1,z6,z7,disas,z6-iadjst) if (disas.eq.-2) goto 600 comment just put into stasis c c Move evaluation, z6=to, z7=from, check out new location c 1200 if ((rmap(z7).ne.'T').and.(omap(z7).ne.'*')) rmap(z7)=omap(z7) if (z6.eq.mycode(y)) mycode(y)=0 ac = rmap(z6) ao = omap(z6) if (ac .eq. 'T') goto 1400 comment getting on a transport? if ((rmap(z7) .ne. 'T') .or. (ao .ne. '.')) goto 1300 if (.not. fatal(1)) goto 2800 comment cannot attack on transports, ask call topmsg ( 2, 'You are incapable of attack * while on a transport.' ) call topmsg ( 3, 'Your army jumped into the briny and drowned.' ) call cflush call delay(30) goto 2500 1300 if (ao .ne. '.') goto 1600 comment make sure not sea if (.not. fatal(1)) goto 2800 comment ask about drowning if (ac .ne. '.') goto 1800 call topmsg ( 3, 'Your army marched dutifully into the * sea and drowned.' ) call cflush call delay(30) goto 2500 1400 h1=30 comment check if room on transport call find(ac,z6,z8,h1) n=0 do 1500 i=1,limit(1) if (rlmap(i).ne.z6) goto 1500 if (i.eq.y) goto 1500 comment dont count ourself n=n+1 1500 continue if (n.lt.h1*2) goto 1700 if (.not. fatal(6)) goto 2800 if (mycode(y).gt.50) mycode(y)=0 goto 1700 1600 if (ac .ne. '+') goto 1800 comment check if clear rmap(z6) = 'A' comment put army on the map 1700 rlmap(y) = z6 comment record new location goto 2600 c c We're attacking something c 1800 h1=1 comment armies have one hit if (omap(z6) .ne. '*') goto 2400 do 2300 iy=1,70 comment it's a city, find who owns it if (x(iy).ne.z6) goto 2300 if (owner(iy).ne.1) goto 1900 do 1850 jy=1,limit(5) if (z6.eq.rlmap(itt+jy)) goto 1400 1850 continue if (.not. fatal(5)) goto 2800 comment ask about fatal move rmap(z6)='O' call topmsg ( 2, 'BASTARDO! You attacked your own city!' ) call topmsg ( 3, 'Your impertinent attacking army was liquidated.' ) call cflush call delay(30) goto 2500 1900 if (irand(100).lt.50) goto 2000 call topmsg ( 3, 'The scum defending the city has crushed * your attacking blitzkrieger!' ) call cflush call delay(30) goto 2300 2000 call sector(pmap(1)) ptr = 0 call addstr ( 'City # ', jnkbuf, ptr ) call addint ( iy, jnkbuf, ptr ) call addstr( ' has been subjugated!', jnkbuf, ptr ) jnkbuf ( ptr + 1 ) = '\0' call topmsg ( 2, jnkbuf ) call topmsg ( 3, 'The army has been dispersed to enforce control.' ) call topmsg ( 1, 'What are your production demands for this city? ' ) call cflush rmap ( z6 )= 'O' call sensor ( z6 ) call cursor(z6-iadjst) phase ( iy ) = 0 found ( iy ) = 10000 call phasin ( iy, e ) if ( owner ( iy ) .ne. 2 ) goto 2200 comment if enemy owned it, tell him call sonar ( z6 ) do 2100 i = 1, 70 if (target(i).eq.z6) goto 2200 if (target(i).ne.0) goto 2100 target(i)=z6 goto 2200 2100 continue 2200 owner(iy)=1 2300 continue goto 2500 c c Attacking another unit c 2400 if ((ac.ge.'A').and.(ac.le.'T')) then if (.not.fatal(2)) goto 2800 endif own1='A' own2=ac h1=1 h2=30 call find(own2,z6,z8,h2) call fght(z6,h1,h2,own1,own2) call find(own2,z6,z8,h2) if (h1.le.0) goto 2500 comment did I lose?, Yes, wipe up rmap(z6)='A' if ((own2.ge.'a').and.(own2.le.'t')) call sonar(z6) if (ao.eq.'+') goto 1700 rmap(z6)=ao if ((own2.ge.'a').and.(own2.le. 't')) call sonar(z6) call topmsg ( 2, 'Your army regretfully drowns after * its successful assault' ) call cflush call delay(30) 2500 rlmap(y)=0 comment "kill" my army mycode(y)=0 2600 call sensor(z6) 2700 continue return c c Recover from fatal move, and try again c 2800 z6=z7 comment go back to old location rmap(z6)=ab comment change it back to previous goto 1000 end SHAR_EOF if test 5112 -ne "`wc -c < 'armymv.f'`" then echo shar: error transmitting "'armymv.f'" '(should have been 5112 characters)' fi fi # end of overwriting check if test -f 'attack.c' then echo shar: will not over-write existing file "'attack.c'" else cat << \SHAR_EOF > 'attack.c' attack_(own1, own2, ih1, aggr) char *own1, *own2; int *ih1, *aggr; { int h1 = *ih1, h2, c1, c2, zero = 0; int s1 = 1, s2 = 1; c1 = cost_(own1, &h1); c2 = cost_(own2, &zero); if (*own1 == 's') s1 = 3; if (*own2 == 'S') s2 = 3; h2 = chits_(own2); h1 = (h1 + s2 - 1) / s2; h2 = (h2 + s1 - 1) / s1; return ((((c2 * 100) * h1) / h2) - (c1 * 100) + (*aggr * 100)); } SHAR_EOF if test 378 -ne "`wc -c < 'attack.c'`" then echo shar: error transmitting "'attack.c'" '(should have been 378 characters)' fi fi # end of overwriting check if test -f 'bell.c' then echo shar: will not over-write existing file "'bell.c'" else cat << \SHAR_EOF > 'bell.c' bell_() { putchar('\007'); } SHAR_EOF if test 31 -ne "`wc -c < 'bell.c'`" then echo shar: error transmitting "'bell.c'" '(should have been 31 characters)' fi fi # end of overwriting check if test -f 'block.f' then echo shar: will not over-write existing file "'block.f'" else cat << \SHAR_EOF > 'block.f' subroutine block ( amap ) c c This subroutine makes a copy of map ii into supplied file spec c IMPLICIT INTEGER(A-Z) include 'common.h' C character amap(6000) integer i isec=-1 call clear call topini jector=-1 call strout ( 'Output file: ' ) call cflush call getstr ( tty, 20, i ) call clear call topini tty ( i + 1 : i + 1 ) = '\0' open ( unit=2, file=tty, access='SEQUENTIAL', * form='FORMATTED', status='NEW', err=600 ) do 500 j=0,5900,100 do 200 k=100,1,-1 ab=amap(k+j) 200 if (ab.ne.' ') goto 300 goto 500 300 do 400 l=1,k 400 g2(l)=amap(j+l) write(2,998) (g2(l),l=1,k) 998 format(1x,100a1) 500 continue close(unit=2) return 600 continue ptr = 0 call addstr ( 'ERROR, Unable to open output file ', jnkbuf, ptr ) call addstr ( tty, jnkbuf, ptr ) jnkbuf ( ptr + 1 ) = '\0' call topmsg ( 1, jnkbuf ) call cflush return end SHAR_EOF if test 864 -ne "`wc -c < 'block.f'`" then echo shar: error transmitting "'block.f'" '(should have been 864 characters)' fi fi # end of overwriting check if test -f 'bufpos.c' then echo shar: will not over-write existing file "'bufpos.c'" else cat << \SHAR_EOF > 'bufpos.c' #include <curses.h> #include "c_common.h" bufpos_(irow, icol, str, size) int *irow, *icol, *size; char *str; { char buf[BUFSIZ]; strncpy(buf, str, *size); buf[*size] = '\0'; tpos_(irow, icol); addstr(buf); refresh(); } SHAR_EOF if test 229 -ne "`wc -c < 'bufpos.c'`" then echo shar: error transmitting "'bufpos.c'" '(should have been 229 characters)' fi fi # end of overwriting check if test -f 'c.c' then echo shar: will not over-write existing file "'c.c'" else cat << \SHAR_EOF > 'c.c' #include <curses.h> #include <ctype.h> #include "c_common.h" int debug = 0; FILE *fileerr; #undef move move(y, x) { if (debug) { fprintf(fileerr, "DEBUG: move to %d, %d\n", x, y); fflush(fileerr); } wmove(stdscr, y, x); } cr_() { if (debug) { fprintf(fileerr, "DEBUG: newline\n"); fflush(fileerr); } addch('\n'); } clreol_(linep, colp, eolcolp) int *linep, *colp, *eolcolp; { if (debug) { fprintf(fileerr, "DEBUG: clrtoeol\n"); fflush(fileerr); } move(*linep, *colp); clrtoeol(); } csleep_(secs) int *secs; { sleep(*secs + 1); } clear_() { if (debug) { fprintf(fileerr, "DEBUG: clear\n"); fflush(fileerr); } erase(); } ttinit_() { if (debug) fileerr = fopen("LOG", "w"); initscr(); noecho(); crmode(); lines_ = LINES; cols_ = COLS; if (lines_ > 64) lines_ = 64; if (cols_ > 110) cols_ = 110; } cflush_() { if (debug) { fprintf(fileerr, "DEBUG: refresh\n"); fflush(fileerr); } refresh(); } caddch_(c) char *c; { if (debug) { fprintf(fileerr, "DEBUG: addch - %x\n", *c); fflush(fileerr); } addch(*c); } bufout_(str, countp) char *str; int *countp; { char buf[BUFSIZ]; if (debug) { fprintf(fileerr, "DEBUG: (%d) '%s'\n", *countp, str); fflush(fileerr); } strncpy(buf, str, *countp); buf[*countp] = '\0'; addstr(buf); } tpos_(yp, xp) int *yp, *xp; { move(*yp - 1, *xp - 1); } #undef getstr getstr_(buf, sizep, countp) char *buf; int *sizep, *countp; { if (debug) { fprintf(fileerr, "DEBUG: getstr\n"); fflush(fileerr); } echo(); getstrq_(buf, sizep, countp); noecho(); } getstrq_(buf, sizep, countp) char *buf; int *sizep, *countp; { int count = 0; if (debug) { fprintf(fileerr, "DEBUG: getstrq\n"); fflush(fileerr); } fflush(stdout); /* because the fortran routine did */ nocrmode(); if (fgets(buf, *sizep, stdin) == NULL) { fputs("Unexpected EOF", stderr); exit(1); } else { *countp = strlen(buf) - 1; buf[*countp] = '\0'; } crmode(); } encpri_(str, startp, endp) int *str; int *startp, *endp; { int i; char buf[BUFSIZ], *bp = buf; if (debug) { fprintf(fileerr, "DEBUG: encpri(%c, %d, %d)\n", str[*startp], *startp, *endp); fflush(fileerr); } for (i = *startp - 1; i < *endp; i++, bp++) *bp = str[i]; *bp = '\0'; waddstr(stdscr, buf); } #define NUMTOPS 3 int len[NUMTOPS]; topini_() { int i; for (i = 0; i < NUMTOPS; i++) { len[i] = 0; move(i, 0); clrtoeol(); } } topmsg_(linep, buf) int *linep; char *buf; { if (*linep < 1 || *linep > NUMTOPS) *linep = 1; move(*linep - 1, 0); waddstr(stdscr, buf); clrtoeol(); len[*linep] = strlen(buf); } addcnt_(linep, addp) int *linep, *addp; { if (*linep < 0 || *linep > NUMTOPS) *linep = 1; len[*linep] += *addp; } addint_(nump, buf, endp) int *nump, *endp; char *buf; { sprintf(&buf[*endp], "%d", *nump); *endp = strlen(buf); } /* maybe add real? */ addrel_(nump, widthp, buf, endp) int *nump, *widthp, *endp; char *buf; { /* what's the width for?? */ sprintf(&buf[*endp], "%d", *nump); *endp = strlen(buf); } rndini_() { srand(time(0)); } irand_(high) int *high; { if (*high < 2) { if (debug) { fprintf(fileerr, "DEBUG: irand %d\n", *high); fflush(fileerr); } return (0); } return (rand() % *high); } rndint_(retval, minp, maxp) int *retval, *minp, *maxp; { int size = *maxp - *minp + 1; *retval = (rand() % size) + *minp; } addstr_(from, to, tolen) char *from, *to; int *tolen; { to[*tolen] = '\0'; strcat(to, from); *tolen = strlen(to); } getchx_() { char c; if (debug) { fprintf(fileerr, "DEBUG: getchx\n"); fflush(fileerr); } if ((c = getchar()) == EOF) { fputs("Unexpected EOF\n", stderr); exit(1); } if (islower(c)) return (toupper(c)); else return (c); } readi_(ip) int *ip; { char buf[BUFSIZ]; int size = sizeof (buf), count = sizeof (buf); if (debug) { fprintf(fileerr, "DEBUG: readi\n"); fflush(fileerr); } *ip = 0; getstr_(buf, &size, &count); if (count != 0) scanf("%d", ip); } tupper_(str, lenp) char *str; int *lenp; { int i; for (i = 0; i < *lenp; i++) if (islower(str[i])) str[i] = toupper(str[i]); } printit_(hits) int *hits; { int i; for (i = 0; i < 15; i++) printf("%d ", hits[i]); } close_disp() { move(LINES - 1, 0); clrtoeol(); refresh(); endwin(); } SHAR_EOF if test 4223 -ne "`wc -c < 'c.c'`" then echo shar: error transmitting "'c.c'" '(should have been 4223 characters)' fi fi # end of overwriting check if test -f 'carier.f' then echo shar: will not over-write existing file "'carier.f'" else cat << \SHAR_EOF > 'carier.f' subroutine carier c c This subroutine handles enemy carrier moves c IMPLICIT INTEGER(A-Z) character P include 'common.h' C NUMBER(7)=0 IF (CODER.EQ.7) PRINT 999 999 FORMAT(' CARRIER CODES') OWN1='c' MONKEY=0 c c Begin loop c DO 2700 Y=1,LIMIT(15) Z6=RLMAP(ICA2+Y) IF (Z6.EQ.0) GOTO 2700 DIR=MOD(Y,2)*2-1 H1=J1TS(ICA2H+Y) IF (RMAP(Z6).EQ.'X') H1=H1+1 IF (H1.GT.8) H1=8 C ORIG=Z6 DO 2600 TURN=1,2 IF ((TURN.EQ.2).AND.(H1.LE.4)) GOTO 2700 comment MOVE AT 1/2 SPEED P='N' N=0 Z7=Z6 AB=RMAP(Z6) IF ((AB.NE.'c').AND.(AB.NE.'X')) GOTO 1800 C C MOVE SELECTION C IFO=CODEFU(Y+ICA2-1500) ILA=CODELA(Y+ICA2-1500) IF (H1.EQ.8) GOTO 100 IFO=8 ILA=IPORT(Z6) GOTO 1300 C C IFO=7: RANDOM DIRECTION C IFO=6: HEADING TOWARDS STATION C IFO=8: DAMAGED C IFO=9: STATIONED C C DOES A NEW CODE NEED TO BE SELETED? 800:YES, 1300:NO C 100 GOTO (200,300,400,500) IFO-5 GOTO 800 C 200 GOTO 1300 C 300 GOTO 800 C 400 IF (H1.EQ.8) GOTO 800 GOTO 1300 C 500 DO 600 I=1,70 IF (TARGET(I).EQ.0) GOTO 600 IF ((EMAP(TARGET(I)).EQ.'O').AND.(IDIST(Z6,TARGET(I)).LE.10)) 1 GOTO 1300 600 CONTINUE DO 700 I=1,10 700 IF (IDIST(Z6,LOCI(I,2)).LE.10) GOTO 1300 GOTO 800 C C NEW CODE SELECTION C 800 DO 1200 J=1,10 IF (LOCI(J,2).EQ.0) GOTO 1200 LOC=LOCI(J,2) KDORK=0 ID=500 DO 900 K=1,70 IF (OWNER(K).NE.2) GOTO 900 IF (IDIST(X(K),LOC).GE.ID) GOTO 900 ID=IDIST(X(K),LOC) IF (ID.LT.10) GOTO 1200 KDORK=X(K) 900 CONTINUE DO 1000 K=ICA2+1,ICA2+LIMIT(15) IS=RLMAP(K) IF (IS.EQ.0) GOTO 1000 IF (IDIST(IS,LOC).GE.ID) GOTO 1000 IF (CODEFU(K-1500).NE.9) GOTO 1000 ID=IDIST(IS,LOC) IF (ID.LT.10) GOTO 1200 KDORK=IS 1000 CONTINUE IF (KDORK.EQ.0) GOTO 1200 1100 IF (IDIST(KDORK,LOC).LT.1) GOTO 1200 LOC=LOC+IARROW(MOV(LOC,KDORK)+1) comment ** IF (IDIST(KDORK,LOC).GT.19) GOTO 1100 AD=EMAP(LOC) IF ((AD.NE.' ').AND.(AD.NE.'.')) GOTO 1100 IFO=6 ILA=LOC GOTO 1300 1200 CONTINUE C C RANDOM DIRECTION SELECTION C IF (IFO.EQ.7) GOTO 1300 IFO=7 KDORK=0 ILA=irand(8)+1 comment ** C C NOW PICK THE MOVE SPECIFIED BY IFO AND ILA C 1300 IF (IFO.EQ.8) GOTO 1500 IF (IFO.NE.7) GOTO 1400 MOVE=ILA GOTO 1700 1400 IF (IFO.NE.6) GOTO 1600 IF (ILA.NE.Z6) GOTO 1500 IFO=9 GOTO 1600 1500 MOVE=PATH(Z6,ILA,DIR,OKC,FLAG) GOTO 1700 1600 IF (Z6.NE.ILA) MOVE=MOV(Z6,ILA) IF (Z6.EQ.ILA) MOVE=irand(8)+1 comment ** C C MOVE CORRECTION C 1700 AGGR=0 IF ((NUMBER(7).GT.3).AND.(IFO.NE.9)) AGGR=5 MOVE=MOVCOR(IFO,TURN,Z6,MOVE,H1,1,AGGR,'c',1,DIR,-1,ORIG,8) IF (IFO.EQ.7) ILA=IABS(MOVE) CODEFU(Y+ICA2-1500)=IFO CODELA(Y+ICA2-1500)=ILA IF (CODER.EQ.7) PRINT 998,IFO,ILA 998 FORMAT(1X,I) C C MOVE EVALUATION C Z6=Z6+IARROW(IABS(MOVE)+1) IF (OMAP(Z7).NE.'*') RMAP(Z7)=OMAP(Z7) AB=RMAP(Z6) IF (AB.EQ.'.') GOTO 2000 IF (AB.EQ.'X') GOTO 2100 IF ((AB.GE.'A').AND.(AB.LE.'T')) GOTO 1900 PRINT 997,OWN1,Z6,AB 997 FORMAT(' ENEMY ',A1,' AT ',I4,' RAN AGROUND ON ',A1) 1800 H1=0 GOTO 2200 1900 H2=30 P='S' OWN2=AB CALL FIND(OWN2,Z6,Z8,H2) CALL FGHT(Z6,H1,H2,'c',OWN2) CALL FIND(OWN2,Z6,Z8,H2) IF (H1.LE.0) GOTO 2200 2000 RMAP(Z6)=OWN1 2100 RLMAP(Y+ICA2)=Z6 J1TS(Y+ICA2H)=H1 IF (TURN.EQ.1) NUMBER(7)=NUMBER(7)+1 2200 N=0 IF (P.EQ.'S') CALL SENSOR(Z6) DO 2300 I=1,LIMIT(10) IF (Z7.NE.RLMAP(I+2000)) GOTO 2300 IF (N+1.GT.H1) THEN IF (RMAP(Z7).NE.'X') RLMAP(I+2000)=0 GOTO 2300 ENDIF N=N+1 RLMAP(I+2000)=Z6 2300 CONTINUE IF (H1.LE.0) GOTO 2400 MONKEY=Y GOTO 2500 2400 RLMAP(Y+ICA2)=0 CODEFU(Y+ICA2-1500)=0 CODELA(Y+ICA2-1500)=0 J1TS(ICA2H+Y)=0 2500 CALL SONAR(Z6) 2600 CONTINUE 2700 CONTINUE LIMIT(15)=MONKEY RETURN END SHAR_EOF if test 3558 -ne "`wc -c < 'carier.f'`" then echo shar: error transmitting "'carier.f'" '(should have been 3558 characters)' fi fi # end of overwriting check if test -f 'c_common.h' then echo shar: will not over-write existing file "'c_common.h'" else cat << \SHAR_EOF > 'c_common.h' #define IAR 0 #define IFI 500 #define IDE 700 #define ISU 900 #define ITT 1100 #define ICR 1200 #define ICA 1300 #define IBA 1400 #define IAR2 1500 #define IFI2 2000 #define IDE2 2200 #define ISU2 2400 #define ITT2 2600 #define ICR2 2700 #define ICA2 2800 #define IBA2 2900 #define IDEH 0 #define ISUH 200 #define ITTH 400 #define ICRH 500 #define ICAH 600 #define IBAH 700 #define IDE2H 800 #define ISU2H 1000 #define ITT2H 1200 #define ICR2H 1300 #define ICA2H 1400 #define IBA2H 1500 typedef int LOGICAL; extern int lines_, cols_; extern int x_[70]; extern int g2_[100]; extern int __hits_[15], tipe_[15], crahit_[15], craloc_[15]; extern int index_[15]; extern int cmytbl_[9], kbfudg_[9]; extern int lopmax_[15]; extern int comscn_[40]; extern int nshprf_[4][6]; extern int prior_[7]; extern int range_[200], ar2s_[500]; extern int armtot_[20], codefu_[1500], codela_[1500], target_[70], limit_[16]; extern int arrow_[9]; extern int d2_[3]; extern int mycode_[1500]; extern int rang_[200]; extern int iotab_[16]; extern int phazee_[8]; extern int ptr_; extern int rlmap_[3000]; extern int ph_[8], ovrpop_[2][16]; extern int iarrow_[10]; extern int cities[128]; extern int movedflag_[1500]; extern int j1ts_[1600]; extern int d_[667]; extern int owner_[70]; extern int found_[70]; extern int phase_[70]; extern int fipath_[70]; extern int loci_[11][10]; extern int number_[18]; extern int troopt[5][6]; extern char ab_, ac_, ad_, ao_, e_, own1_, own2_, own_; extern char kbtbl_[9], ab9_[9]; extern char comm_[30], phaze_[8]; extern char ifile_[11], kill_; extern char comman_[20], oka_[5], okb_[5], okc_[5]; extern char tty_[20]; extern char emap_[6000], rmap_[6000], pmap_[6000], omap_[6000]; extern char pamela_[8], reeed_[9]; extern char jnkbuf_[80]; extern LOGICAL specal_, pass_, automv_; /* * aggr: this is a measure of the enemy ships aggressiveness, * this value is added to the cost-effectiveness of attacking an * enemy unit to determine if the ship will attack or run from the * enemy. * all cities are referenced by city number, as in x_[n]=loc of city #n * codfu/codela: contains a number that determines what that computer craft * is assigned to do, is seperated into 2 numbers, ifo and ila. ifo * gives the function, ila gives details. * coder: used for debug flag * crowd: used if city is surrounded by armies * d: original map, encoded in mod 3 * explor: this is set to 1 if the enemy ship is to explore unknown * territory adjacent to it, 0 if not. * fipath: stasis # to be given to fighter in that city * found: completion dates for cities * iadjst: subtracted from z6 so cursor will not be moved off screen * iarrow: added to z6 so moves [1,2,3,4,5,6,7,8,9] are converted * to [+1,-99,-100,-101,etc.] * isec: sector terminal is showing * izap: .true.=save game, .false.=initialize * jector: sector program is looking at * kursor: set to position of cursor * mode: 1=in mode 2, 0=in mode 1 * owner: who owns the city: 0>nobody, 1>player, 2>computer * pass: set to .true. if it is a privileged user * phase: phase of city * x: locations of cities */ SHAR_EOF if test 3220 -ne "`wc -c < 'c_common.h'`" then echo shar: error transmitting "'c_common.h'" '(should have been 3220 characters)' fi fi # end of overwriting check if test -f 'citfnd.c' then echo shar: will not over-write existing file "'citfnd.c'" else cat << \SHAR_EOF > 'citfnd.c' #include "c_common.h" /* * FIND CITY AT LOCATION Z6, RETURN INDEX INTO X() */ citfnd_(z6) int *z6; { int i, three = 3; for (i = 0; i < 70; i++) if (x_[i] == *z6) return (i+1); if (pass_) topmsg_(&three, "Citfnd error, get help!"); return (0); } SHAR_EOF if test 261 -ne "`wc -c < 'citfnd.c'`" then echo shar: error transmitting "'citfnd.c'" '(should have been 261 characters)' fi fi # end of overwriting check if test -f 'cityct.f' then echo shar: will not over-write existing file "'cityct.f'" else cat << \SHAR_EOF > 'cityct.f' SUBROUTINE CITYCT C IMPLICIT INTEGER(A-Z) include 'common.h' C C NUMBER(9)=0 DO 100 I=11,18 100 NUMBER(I)=0 DO 200 I=1,70 IF (OWNER(I).NE.2) GOTO 200 NUMBER(9)=NUMBER(9)+1 IF (PHASE(I).LE.0) GOTO 200 comment HANDLES JUST CAPTURED CITY INDEXX=INDEX(PHASE(I)) NUMBER(INDEXX)=NUMBER(INDEXX)+1 200 CONTINUE C C NOW LET NUMBER(10)=LAST FILLED SLOT IN TARGET C DO 300 I=70,1,-1 IF (TARGET(I).EQ.0) GOTO 300 NUMBER(10)=I GOTO 400 300 CONTINUE NUMBER(10)=0 400 RETURN END SHAR_EOF if test 483 -ne "`wc -c < 'cityct.f'`" then echo shar: error transmitting "'cityct.f'" '(should have been 483 characters)' fi fi # end of overwriting check if test -f 'cityph.f' then echo shar: will not over-write existing file "'cityph.f'" else cat << \SHAR_EOF > 'cityph.f' SUBROUTINE CITYPH(I) C IMPLICIT INTEGER(A-Z) include 'common.h' C C C NUMBER(1-8): NUMBERS OF UNITS C NUMBER(11-18): NUMBERS OF CITIES WITH EACH PHASE C NUMBER(9): NUMBER OF CITIES C NUMBER(10): NUMBER OF TARGET CITIES C INT=PHASE(I) IF (PHASE(I).NE.-1) GOTO 100 PHASE(I)=1 GOTO 1400 100 EDGE=EDGER(X(I)) C C IF WE HAVE A PHASE OF 0, MAKE SOMETHING comment C IF (PHASE(I).EQ.0) GOTO 600 C C IF CITY IS SURROUNDED BY ARMIES, MAKE SOMETHING ELSE C IF (PHASE(I).NE.1) GOTO 300 DO 200 J=1,8 200 IF (RMAP(X(I)+IARROW(J+1)).EQ.'+') GOTO 300 comment ** GOTO 600 C C IF CRAFT NUMBERS ARE GETTING GROSSLY LARGE, PRODUCE SOMETHING ELSE C 300 IF (NUMBER(OVRPOP(PHASE(I)+1,1)).GT. 1 OVRPOP(PHASE(I)+1,2)) GOTO 600 comment ** C IF (EDGE.NE.8) GOTO 400 IF ((NUMBER(9).GT.1).AND.(PHASE(I).EQ.1)) GOTO 1100 IF (NUMBER(9).GT.1) GOTO 1400 IF (NUMBER(5).LT.1) PHASE(I)=6 IF (NUMBER(5).GT.0) PHASE(I)=1 GOTO 1400 C 400 IF (PHASE(I).NE.1) GOTO 600 N=0 DO 500 J=IAR2+1,IAR2+LIMIT(9) Z=RLMAP(J) IF (Z.EQ.0) GOTO 500 IF (IDIST(X(I),Z).GT.6) GOTO 500 IF (EMAP(Z).EQ.'t') GOTO 500 MOVE=PATH(X(I),Z,1,OKA,FLAG) IF (FLAG.EQ.0) GOTO 500 N=N+1 IF ((N.GT.6).AND.(NUMBER(11).GT.1)) GOTO 800 500 CONTINUE IF ((N.GT.3).AND.(NUMBER(11).GT.1)) GOTO 600 GOTO 1400 C C SELECT A NEW PHASE FOR THE CITY C 600 CONTINUE C C IF THERE ARE ENEMY ARMIES ON THE CONTINENT, PRODUCE ARMIES comment C IF (EDGE.EQ.8) GOTO 1050 DO 700 J=1,10 IF (LOCI(J,2).EQ.0) GOTO 700 MOVE=PATH(X(I),LOCI(J,2),1,OKA,FLAG) IF (FLAG.EQ.0) GOTO 700 PHASE(I)=1 GOTO 1300 700 CONTINUE C 800 PHASE(I)=2 IF (EDGE.GT.0) GOTO 900 comment IF NOT LANDLOCKED IF (NUMBER(1).LE.3*NUMBER(2)) PHASE(I)=1 comment IF SMALL .NE. OF ARMIES GOTO 1300 C 900 PHASE(I)=1 N=0 DO 1000 J=IAR2+1,IAR2+LIMIT(9) Z=RLMAP(J) IF (Z.EQ.0) GOTO 1000 IF (IDIST(X(I),Z).GT.6) GOTO 1000 IF (EMAP(Z).EQ.'t') GOTO 1000 comment IF ON TROOP TRANSPORT MOVE=PATH(X(I),Z,1,OKA,FLAG) IF (FLAG.EQ.0) GOTO 1000 N=N+1 1000 CONTINUE IF (N.LT.3) GOTO 1300 1050 PHASE(I)=2 IF (NUMBER(2)*2.GT.NUMBER(9)) GOTO 1100 IF ((NUMBER(5).LT.3).AND.(NUMBER(15).LT.2)) GOTO 1100 IF (NUMBER(2)*4.LT.NUMBER(9)) GOTO 1300 IF (INT.EQ.2) GOTO 1300 IF (INT.GT.2) GOTO 1100 IF (irand(100).LT.50) GOTO 1300 C C SELECT A SHIP, GUARANTEEING AT LEAST TWO CITIES PRODUCING TROOP TRANSPORTS C 1100 PHASE(I)=PH(8) DO 1200 J=8,4,-1 1200 IF (NUMBER(J+10).GE.NUMBER(J+9)) PHASE(I)=PH(J-1) IF (INT.GT.2) PHASE(I)=INT IF (NUMBER(17).EQ.0) PHASE(I)=12 IF (NUMBER(15).LT.2) PHASE(I)=6 C 1300 IF ((NUMBER(9).GT.1).AND.(NUMBER(15).EQ.0).AND.(EDGE.GT.0)) 1 PHASE(I)=6 1400 FOUND(I)=5*PHASE(I)+MDATE IF (INT.EQ.PHASE(I)) GOTO 1500 FOUND(I)=6*PHASE(I)+MDATE CALL CITYCT IF (CODER.NE.9) GOTO 1500 CALL tpos(2,1) PRINT 999,X(I),INT,PHASE(I),EDGE 999 FORMAT('+CITY:',I4,' FROM:',I2,' TO:',I2,' EDGE:',I1,3X,$) CALL GETCHX(E) 1500 RETURN END SHAR_EOF if test 2874 -ne "`wc -c < 'cityph.f'`" then echo shar: error transmitting "'cityph.f'" '(should have been 2874 characters)' fi fi # end of overwriting check if test -f 'compar.f' then echo shar: will not over-write existing file "'compar.f'" else cat << \SHAR_EOF > 'compar.f' FUNCTION COMPAR(AB,Z62,OKVECT) C C USED BY PATH, CHECKS IF AB OR LOCATION Z62 IS A TYPE CONTAINED IN OKVECT C IMPLICIT INTEGER(A-Z) character OKVECT(5),AB character OMAP(6000) COMMON/OMAP/OMAP C COMPAR = 1 IF (AB .EQ. OKVECT(1)) RETURN IF (OMAP(Z62) .EQ. OKVECT(1)) RETURN IF (AB .EQ. OKVECT(2)) RETURN IF (AB .EQ. OKVECT(3)) RETURN IF (AB .EQ. OKVECT(4)) RETURN IF (AB .EQ. OKVECT(5)) RETURN COMPAR = 0 RETURN END SHAR_EOF if test 431 -ne "`wc -c < 'compar.f'`" then echo shar: error transmitting "'compar.f'" '(should have been 431 characters)' fi fi # end of overwriting check if test -f 'contained.c' then echo shar: will not over-write existing file "'contained.c'" else cat << \SHAR_EOF > 'contained.c' #include <curses.h> /* * returns true (1) if sector "inside" is all inside of sector "outside" */ contained_(inside, outside) int *inside, *outside; { int minX, minY, maxX, maxY; int lowX, lowY, highX, highY; minY = kline_(&minX, outside); minY /= 100; maxX = minX + (COLS - 10) - 1; maxY = minY + (LINES - 4) - 1; lowY = old_kline_(&lowX, inside); lowY /= 100; highX = lowX + 70 - 1; highY = lowY + 20 - 1; if (minX <= lowX && minY <= lowY && maxX >= highX && maxY >= highY) return (1); else return (0); } /* * Changes jector (0->9) to ki (x offset) and line (returned) * 100 */ old_kline_(ki, jector) int *ki, *jector; { int ject; *ki = 0; ject = *jector; if ( *jector > 4) { *ki = 30; ject = ject - 5; } return ((ject * 10) * 100); } SHAR_EOF if test 778 -ne "`wc -c < 'contained.c'`" then echo shar: error transmitting "'contained.c'" '(should have been 778 characters)' fi fi # end of overwriting check if test -f 'cost.f' then echo shar: will not over-write existing file "'cost.f'" else cat << \SHAR_EOF > 'cost.f' function cost(own,h) implicit integer(a-z) integer cosval ( 14 ) character costab ( 14 ), own data cosval / 0, 2, 4, 6, 3, 5, 4, 1, 3, 3, 7, * 5, 11, 11/ data costab /'F','D','S','T','R','C','B','f','d','s','t', * 'r','c','b'/ do 100 i = 1, 14 100 if ( own .eq. costab ( i )) goto 200 pause 'BAD CALL TO FUNCTION COST!' cost = 0 return 200 cost = cosval ( i ) if ( i .ge. 9 ) cost = cost - h return end SHAR_EOF if test 441 -ne "`wc -c < 'cost.f'`" then echo shar: error transmitting "'cost.f'" '(should have been 441 characters)' fi fi # end of overwriting check if test -f 'cursor.f' then echo shar: will not over-write existing file "'cursor.f'" else cat << \SHAR_EOF > 'cursor.f' ccc cursor - position cursor to map location subroutine cursor ( n ) integer n c c synopsis c c call cursor ( n ) c c n - map location c integer i, j i = n / 100 + 1 j = mod ( n, 100 ) + 1 call tpos ( i, j ) call cflush return end SHAR_EOF if test 244 -ne "`wc -c < 'cursor.f'`" then echo shar: error transmitting "'cursor.f'" '(should have been 244 characters)' fi fi # end of overwriting check if test -f 'data.c' then echo shar: will not over-write existing file "'data.c'" else cat << \SHAR_EOF > 'data.c' #include "c_common.h" char comman_[20] = { 'S','R','I','K','O','L','F','G','P','H', 'Y','T','V','J','?','\0','\0','U','N','+' }; char comm_[30] = { 'D','E','W','Q','A','Z','X','C','S', 'L','B','F','T','G','V','J','U',-1,-1, 'O','P','R','I','M','K','N','S','?','Y','H' }; int iotab_[16] = { 0,500,700,900,1100,1200,1300,1400,1500,2000, 2200,2400,2600,2700,2800,2900 }; int ovrpop_[2][16] = { { 9,001,002,9,003,004,05,9,9,9,06,9,07,9,9,08,}, { 0,499,199,0,199,199,83,0,0,0,99,0,99,0,0,99} }; int comscn_[40] = { 'M','N','O','S','T','V','P','Y','C','L','H','J', '1','R','@','Q','+','A',0,0, 'LO','NU','LI','TR','AR','TA','PA','A1', 'T3','A0','CO','CH','Q0','Q1','JE','CY','EX',0,0,0 }; int arrow_[9] = { -101,-100,-99,-1,0,1,99,100,101 }; int cmytbl_[9] = { 6104,6103,6102,6105,6101,6106,6107,6108,0 }; int crahit_[15] = { 0,0,0,0, 200, 400,0,0,0, 500,0, 600,0,0, 700 }; int craloc_[15] = { 0,500,0,700,900,1100,0,0,0,1200,0,1300,0,0,1400 }; int __hits_[15] = { 1,1,0,3,2,3,0,0,0,8,0,8,0,0,12 }; int iarrow_[10] = { 0,1,-99,-100,-101,-1,99,100,101,0 }; int index_[15] = { 11,12,0,13,14,15,0,0,0,16,0,17,0,0,18 }; int kbfudg_[9] = { -101,-100,-99,-1,1,99,100,101,0 }; char kbtbl_[9] = { 'Q','W','E','A','D','Z','X','C',' ' }; int lopmax_[15] = { 500,200,0,200,200,100,0,0,0,100,0,100,0,0,100