maindec: Added the usual collection, with intact symlinks
[pdp8.git] / sw / adventure / DUMPDB.FT
1 C ADVENTURES
2 SUBROUTINE DUMPDB
3 C ADVENTURES
4 C
5 C MODIFIED BY KENT BLACKETT
6 C ENGINEERING SYSTEMS GROUP
7 C DIGITAL EQUIPMENT CORP.
8 C 15-JUL-77
9 C MODIFIED BY BOB SUPNIK
10 C DISK ENGINEERING
11 C 21-OCT-77
12 C MODIFIED BY BOB SUPNIK
13 C DISK ENGINEERING
14 C 25-AUG-78
15 C MODIFIED BY BOB SUPNIK
16 C SMALL SYSTEMS
17 C 12-NOV-78
18 C ORIGINAL VERSION WAS FOR DECSYSTEM-10
19 C NEXT VERSION WAS FOR FORTRAN IV-PLUS UNDER
20 C THE IAS OPERATING SYSTEM ON THE PDP-11/70
21 C THIS VERSION IS FOR FORTRAN IV (V01C OR LATER)
22 C UNDER RT-11 ON *ANY* PDP-11
23 C
24 C
25 C CURRENT LIMITS:
26 C 750 TRAVEL OPTIONS (TRAVEL, TRVSIZ).
27 C 300 VOCABULARY WORDS (KTAB, ATAB, TABSIZ).
28 C 150 LOCATIONS (LTEXT, STEXT, KEY, COND, ABB, ATLOC, LOCSIZ).
29 C 100 OBJECTS (PLAC, PLACE, FIXD, FIXED, LINK (TWICE), PTEXT, PROP).
30 C 35 "ACTION" VERBS (ACTSPK, VRBSIZ).
31 C 205 RANDOM MESSAGES (RTEXT, RTXSIZ).
32 C 12 DIFFERENT PLAYER CLASSIFICATIONS (CTEXT, CVAL, CLSMAX).
33 C 20 HINTS, LESS 3 (HINTLC, HINTED, HINTS, HNTSIZ).
34 C THERE ARE ALSO LIMITS WHICH CANNOT BE EXCEEDED DUE TO THE STRUCTURE OF
35 C THE DATABASE. (E.G., THE VOCABULARY USES N/1000 TO DETERMINE WORD TYPE,
36 C SO THERE CAN'T BE MORE THAN 1000 WORDS.) THESE UPPER LIMITS ARE:
37 C 1000 NON-SYNONYMOUS VOCABULARY WORDS
38 C 300 LOCATIONS
39 C 100 OBJECTS
40 C
41 C IMPLICIT INTEGER (A-Z)
42 LOGICAL LMWARN,CLOSNG,PANIC,HINTED,
43 1 CLOSED,GAVEUP,SCORNG,DSEEN,BITSET
44 C
45 COMMON /VERSN/ VMAJ, VMIN, VEDIT
46 COMMON /TXTCOM/ RTEXT,LINES,ASCVAR,TXTLOC,DATA
47 COMMON /VOCCOM/ KTAB,ATAB,TABSIZ
48 COMMON /PLACOM/ ATLOC,LINK,PLACE,FIXED,HOLDNG
49 COMMON /PTXCOM/ PTEXT
50 COMMON /ABBCOM/ ABB
51 COMMON /MISCOM/ LINUSE,TRVS,CLSSES,OLDLOC,LOC,CVAL,TK,NEWLOC,
52 1 KEY,PLAC,FIXD,ACTSPK,COND,HINTS,HNTMAX,PROP,TALLY,TALLY2,
53 2 HINTLC,CHLOC,CHLOC2,DSEEN,DFLAG,DLOC,DALTLC,KEYS,LAMP,GRATE
54 COMMON /MISCOM/
55 3 CAGE,ROD,ROD2,STEPS,BIRD,DOOR,PILLOW,SNAKE,FISSUR,TABLET,
56 4 CLAM,OYSTER,MAGZIN,DWARF,KNIFE,FOOD,BOTTLE,WATER,OIL,PLANT,
57 5 PLANT2,AXE,MIRROR,DRAGON,CHASM,TROLL,TROLL2,BEAR,MESSAG,VEND,
58 6 BATTER,NUGGET,COINS,CHEST,EGGS,TRIDNT,VASE,EMRALD,PYRAM
59 COMMON /MISCOM/
60 7 PEARL,RUG,CHAIN,BACK,LOOK,CAVE,NULL,ENTRNC,DPRSSN,SAY,LOCK,
61 8 THROW,FIND,INVENT,TURNS,LMWARN,KNFLOC,DETAIL,ABBNUM,
62 9 NUMDIE,MAXDIE,DKILL,FOOBAR,BONUS,CLOCK1,CLOCK2,
63 1 CLOSNG,PANIC,CLOSED,GAVEUP,SCORNG,ODLOC,STREAM,SPICES
64 COMMON /MISC2/ I,RTXSIZ,CLSMAX,LOCSIZ,CTEXT,STEXT,LTEXT,
65 1 SECT,TRAVEL,TRVCON,TRVLOC,TRVSIZ,TABNDX,OBJ,J,K,VERB,HNTSIZ,
66 2 MAXTRS,HINTED,HNTLOC,KK
67 C
68 INTEGER LINES(12),DATA(52),RECORD
69 C The TRAVEL, TRVCON, and TRVLOC arrays are
70 C Packed with words 0,1,2 holding the data. Saves lots
71 C of wasted space at the expense of some complexity.
72 INTEGER TRAVEL(250), TRVCON(250), TRVLOC(250), TRVSIZ
73 INTEGER KTAB(300),ATAB(300),TABSIZ
74 INTEGER LTEXT(150),STEXT(150),KEY(150),COND(150),ABB(150),
75 1 ATLOC(150)
76 INTEGER PLAC(100),PLACE(100),FIXD(100),FIXED(100),LINK(200),
77 1 PTEXT(100),PROP(100),HOLDNG
78 INTEGER ACTSPK(35)
79 INTEGER RTEXT(205)
80 INTEGER CTEXT(12),CVAL(12)
81 INTEGER HINTLC(20),HINTS(20,4)
82 DIMENSION HINTED(20)
83 INTEGER TK(20),DLOC(6),ODLOC(6)
84 DIMENSION DSEEN(6)
85 INTEGER ASCVAR, TXTLOC, TRVS, CLSSES, OLDLOC
86 INTEGER HNTSIZ, HNTMAX, TALLY, TALLY2, CHLOC, CHLOC2, DFLAG
87 INTEGER DALTLC,GRATE,CAGE,ROD,ROD2,STEPS,BIRD,DOOR,PILLOW,SNAKE
88 INTEGER FISSUR,TABLET,CLAM,OYSTER,MAGZIN,DWARF,KNIFE,FOOD,BOTTLE
89 INTEGER WATER,OIL,PLANT,PLANT2,AXE,MIRROR,DRAGON,CHASM
90 INTEGER BEAR,MESSAG,VEND,BATTER,COINS,CHEST,EGGS,TRIDNT,VASE,EMRALD
91 INTEGER PYRAM,PEARL,RUG,CHAIN,BACK,LOOK,CAVE,NULL,ENTRNC,DPRSSN,SAY
92 INTEGER LOCK,THROW,FIND,INVENT,TURNS,KNFLOC,DETAIL,ABBNUM
93 INTEGER NUMDIE,MAXDIE,DKILL,FOOBAR,BONUS,CLOCK1,CLOCK2
94 INTEGER TROLL,TROLL2,STREAM,SPICES
95 INTEGER RTXSIZ,CLSMAX,LOCSIZ,SECT,TABNDX,OBJ
96 INTEGER VERB,HNTLOC,KK
97 C
98 C
99 C
100 C
101 DO 10 I=1,TRVSIZ
102 WRITE(4,1)TRVSIZ
103 1 FORMAT(' TRAVEL ENTRIES: ', I10)
104
105 I1= GETWRD(TRAVEL, I, 0)
106 I2= GETWRD(TRVCON, I, 0)
107 I3= GETWRD(TRVLOC, I, 0)
108 WRITE(4,11) I, I1, I2, I3
109 11 FORMAT(' TRAVEL ',I4,' GIVES',1X,I4,1X,I4,1X,I4)
110 10 CONTINUE
111 DO 20 I = 1, TABSIZ
112 WRITE(4,21)I, KTAB(I), ATAB(I)
113 21 FORMAT(' K/a TAB ',I4,' GIVES ', I6, 1X, A6)
114 20 CONTINUE
115 DO 30 I = 1, 100
116 I4 = I + 100
117 WRITE(4,31)I,PLAC(I),PLACE(I),FIXD(I),FIXED(I),LINK(I),LINK(I4),PTEXT(I),PROP(I)
118 31 FORMAT(' LOCATION DATA',1X,I6,1X,I6,1X,I6,1X,I6,1X,I6,1X,I6,1X,I6,1X,I6,1X,I6)
119 30 CONTINUE
120 RETURN
121 END