|
|
1.1 ! root 1: C DUNGEON-- MAIN PROGRAM ! 2: C ! 3: C COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142 ! 4: C ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED ! 5: C WRITTEN BY R. M. SUPNIK ! 6: C ! 7: PROGRAM DUNGEO ! 8: C ! 9: C DECLARATIONS ! 10: C ! 11: IMPLICIT INTEGER (A-Z) ! 12: LOGICAL INIT ! 13: #include "parser.h" ! 14: #include "gamestate.h" ! 15: #include "state.h" ! 16: #include "screen.h" ! 17: #include "puzzle.h" ! 18: C ! 19: C MISCELLANEOUS VARIABLES ! 20: C ! 21: CHARACTER VEDIT ! 22: COMMON /STAR/ MBASE,STRBIT ! 23: COMMON /VERS/ VMAJ,VMIN,VEDIT ! 24: COMMON /BATS/ BATDRP(9) ! 25: #include "io.h" ! 26: #include "debug.h" ! 27: COMMON /HYPER/ HFACTR ! 28: #include "rooms.h" ! 29: #include "rflag.h" ! 30: #include "rindex.h" ! 31: #include "exits.h" ! 32: #include "curxt.h" ! 33: #include "xpars.h" ! 34: #include "xsrch.h" ! 35: #include "objects.h" ! 36: #include "oflags.h" ! 37: #include "oindex.h" ! 38: #include "clock.h" ! 39: ! 40: #include "villians.h" ! 41: #include "advers.h" ! 42: #include "verbs.h" ! 43: #include "flags.h" ! 44: C DUNGEON, PAGE 2 ! 45: C ! 46: C DATA STATEMENTS FOR CONSTANT ARRAYS ! 47: C ! 48: DATA VMAJ/2/,VMIN/6/,VEDIT/'C'/ ! 49: C ! 50: DATA SDIR/o'40000'/,SIND/o'20000'/,SSTD/o'10000'/, ! 51: & SFLIP/o'4000'/,SDRIV/o'2000'/,SVMASK/o'777'/ ! 52: DATA VABIT/o'40000'/,VRBIT/o'20000'/,VTBIT/o'10000'/, ! 53: & VCBIT/o'4000'/,VEBIT/o'2000'/,VFBIT/o'1000'/, ! 54: & VPMASK/o'777'/ ! 55: C ! 56: DATA BATDRP/66,67,68,69,70,71,72,65,73/ ! 57: C ! 58: DATA SCOLDR/o'2000',153,o'12000',154,o'6000',152,o'16000',151/ ! 59: DATA SCOLWL/151,207,o'6000',152,208,o'16000', ! 60: & 153,206,o'12000',154,205,o'2000'/ ! 61: C ! 62: DATA HFACTR/500/ ! 63: C ! 64: DATA CPDR/o'2000',-8,o'4000',-7,o'6000',1,o'10000',9, ! 65: & o'12000',8,o'14000',7,o'16000',-1,o'20000',-9/ ! 66: DATA CPWL/205,-8,206,8,207,1,208,-1/ ! 67: DATA CPVEC/1,1,1,1,1,1,1,1, ! 68: & 1,0,-1,0,0,-1,0,1, ! 69: & 1,-1,0,1,0,-2,0,1, ! 70: & 1,0,0,0,0,1,0,1, ! 71: & 1,-3,0,0,-1,-1,0,1, ! 72: & 1,0,0,-1,0,0,0,1, ! 73: & 1,1,1,0,0,0,1,1, ! 74: & 1,1,1,1,1,1,1,1/ ! 75: C ! 76: DATA CEVCUR/1/,CEVMNT/2/,CEVLNT/3/,CEVMAT/4/, ! 77: & CEVCND/5/,CEVBAL/6/,CEVBRN/7/,CEVFUS/8/, ! 78: & CEVLED/9/,CEVSAF/10/,CEVVLG/11/,CEVGNO/12/, ! 79: & CEVBUC/13/,CEVSPH/14/,CEVEGH/15/, ! 80: & CEVFOR/16/,CEVSCL/17/,CEVZGI/18/,CEVZGO/19/, ! 81: & CEVSTE/20/,CEVMRS/21/,CEVPIN/22/,CEVINQ/23/, ! 82: & CEVFOL/24/ ! 83: C ! 84: DATA XRMASK/o'377'/,XDMASK/o'76000'/,XFMASK/3/ ! 85: DATA XFSHFT/256/,XASHFT/256/ ! 86: DATA XNORM/1/,XNO/2/,XCOND/3/,XDOOR/4/ ! 87: DATA XELNT/1,2,3,3/,XLFLAG/o'100000'/ ! 88: DATA XMIN/o'2000'/,XMAX/o'40000'/,XUP/o'22000'/,XDOWN/o'24000'/ ! 89: DATA XNORTH/o'2000'/,XSOUTH/o'12000'/,XENTER/o'32000'/, ! 90: & XEXIT/o'34000'/ ! 91: DATA XEAST/o'6000'/,XWEST/o'16000'/ ! 92: C ! 93: DATA PLAYER/1/,AROBOT/2/,AMASTR/3/ ! 94: DATA ASTAG/o'100000'/ ! 95: C ! 96: DATA RSEEN/o'100000'/,RLIGHT/o'40000'/,RLAND/o'20000'/ ! 97: DATA RWATER/o'10000'/,RAIR/o'4000'/,RSACRD/o'2000'/, ! 98: & RFILL/o'1000'/ ! 99: DATA RMUNG/o'400'/,RBUCK/o'200'/,RHOUSE/o'100'/, ! 100: & RNWALL/o'40'/,REND/o'20'/ ! 101: C ! 102: DATA WHOUS/2/,LROOM/8/,CELLA/9/ ! 103: DATA MTROL/10/,MAZE1/11/ ! 104: DATA MGRAT/25/,MAZ15/30/ ! 105: DATA FORE1/31/,FORE3/33/,CLEAR/36/,RESER/40/ ! 106: DATA STREA/42/,EGYPT/44/,ECHOR/49/ ! 107: DATA TSHAF/61/ ! 108: DATA BSHAF/76/,MMACH/77/,DOME/79/,MTORC/80/ ! 109: DATA CAROU/83/ ! 110: DATA RIDDL/91/,LLD2/94/,TEMP1/96/,TEMP2/97/,MAINT/100/ ! 111: DATA MCYCL/101/,BLROO/102/,TREAS/103/,RIVR1/107/,RIVR2/108/ ! 112: DATA RIVR3/109/ ! 113: DATA RIVR4/112/,RIVR5/113/,FCHMP/114/,MBARR/119/,FALLS/120/ ! 114: DATA MRAIN/121/,POG/122/,VLBOT/126/,VAIR1/127/,VAIR2/128/ ! 115: DATA VAIR3/129/,VAIR4/130/ ! 116: DATA LEDG2/131/,LEDG3/132/,LEDG4/133/,MSAFE/135/,CAGER/140/ ! 117: DATA CAGED/141/,TWELL/142/,BWELL/143/,ALICE/144/,ALISM/145/ ! 118: DATA ALITR/146/,MTREE/147/,BKENT/148/ ! 119: DATA BKVW/151/,BKTWI/153/,BKVAU/154/,BKBOX/155/ ! 120: DATA CRYPT/157/,TSTRS/158/,MRANT/159/ ! 121: DATA MREYE/160/,MRA/161/,MRB/162/,MRC/163/,MRG/164/ ! 122: DATA MRD/165/,FDOOR/166/,MRAE/167/ ! 123: DATA MRCE/171/,MRCW/172/,MRGE/173/,MRGW/174/,MRDW/176/ ! 124: DATA INMIR/177/,SCORR/179/ ! 125: DATA NCORR/182/,PARAP/183/,CELL/184/,PCELL/185/,NCELL/186/ ! 126: DATA CPANT/188/,CPOUT/189/ ! 127: DATA CPUZZ/190/ ! 128: C ! 129: DATA CINTW/1/,DEADXW/2/,FRSTQW/3/,INXW/4/ ! 130: DATA OUTXW/5/,WALKIW/6/,FIGHTW/7/,FOOW/8/ ! 131: C ! 132: DATA READW/100/,MELTW/101/ ! 133: DATA INFLAW/102/,DEFLAW/103/,ALARMW/104/,EXORCW/105/ ! 134: DATA PLUGW/106/,KICKW/107/,WAVEW/108/,RAISEW/109/,LOWERW/110/ ! 135: DATA RUBW/111/,PUSHW/112/,UNTIEW/113/,TIEW/114/,TIEUPW/115/ ! 136: DATA TURNW/116/,BREATW/117/,KNOCKW/118/,LOOKW/119/ ! 137: DATA EXAMIW/120/,SHAKEW/121/,MOVEW/122/,TRNONW/123/,TRNOFW/124/ ! 138: DATA OPENW/125/,CLOSEW/126/,FINDW/127/,WAITW/128/,SPINW/129/ ! 139: DATA BOARDW/130/,UNBOAW/131/,TAKEW/132/,INVENW/133/ ! 140: DATA FILLW/134/,EATW/135/,DRINKW/136/,BURNW/137/ ! 141: DATA MUNGW/138/,KILLW/139/,ATTACW/141/ ! 142: DATA SWINGW/140/,WALKW/142/,TELLW/143/,PUTW/144/ ! 143: DATA DROPW/145/,GIVEW/146/,POURW/147/,THROWW/148/ ! 144: C ! 145: DATA DIGW/89/,LEAPW/91/,STAYW/73/,FOLLOW/85/ ! 146: DATA HELLOW/151/,LOOKIW/152/,LOOKUW/153/,PUMPW/154/ ! 147: DATA WINDW/155/,CLMBW/156/,CLMBUW/157/,CLMBDW/158/,TRNTOW/159/ ! 148: C ! 149: DATA VISIBT/o'100000'/,READBT/o'40000'/,TAKEBT/o'20000'/, ! 150: & DOORBT/o'10000'/,TRANBT/o'4000'/,FOODBT/o'2000'/, ! 151: & NDSCBT/o'1000'/,DRNKBT/o'400'/, CONTBT/o'200'/, ! 152: & LITEBT/o'100'/,VICTBT/o'40'/,BURNBT/o'20'/, ! 153: & FLAMBT/o'10'/,TOOLBT/o'4'/,TURNBT/o'2'/,ONBT/o'1'/ ! 154: C ! 155: DATA FINDBT/o'100000'/,SLEPBT/o'40000'/,SCRDBT/o'20000'/, ! 156: & TIEBT/o'10000'/, CLMBBT/o'4000'/,ACTRBT/o'2000'/, ! 157: & WEAPBT/o'1000'/,FITEBT/o'400'/, VILLBT/o'200'/, ! 158: & STAGBT/o'100'/,TRYBT/o'40'/,NOCHBT/o'20'/, ! 159: & OPENBT/o'10'/,TCHBT/o'4'/,VEHBT/o'2'/,SCHBT/o'1'/ ! 160: C ! 161: DATA GARLI/2/,FOOD/3/,GUNK/4/,COAL/5/,MACHI/7/,DIAMO/8/ ! 162: DATA TCASE/9/,BOTTL/10/ ! 163: DATA WATER/11/,ROPE/12/,KNIFE/13/,SWORD/14/,LAMP/15/,BLAMP/16/ ! 164: DATA RUG/17/,LEAVE/18/,TROLL/19/,AXE/20/ ! 165: DATA RKNIF/21/,KEYS/23/,BAR/26/,ICE/30/ ! 166: DATA COFFI/33/,TORCH/34/,TBASK/35/,FBASK/36/,IRBOX/39/ ! 167: DATA GHOST/42/,TRUNK/45/,BELL/46/,BOOK/47/,CANDL/48/ ! 168: DATA MATCH/51/,TUBE/54/,PUTTY/55/,WRENC/56/,SCREW/57/ ! 169: DATA CYCLO/58/,CHALI/59/ ! 170: DATA THIEF/61/,STILL/62/,WINDO/63/,GRATE/65/,DOOR/66/ ! 171: DATA HPOLE/71/,RBUTT/79/,LEAK/78/,RAILI/75/ ! 172: DATA POT/85/,STATU/86/,IBOAT/87/,DBOAT/88/,PUMP/89/,RBOAT/90/ ! 173: DATA STICK/92/,BUOY/94/,SHOVE/96/,GUANO/97/,BALLO/98/,RECEP/99/ ! 174: DATA BROPE/101/,HOOK1/102/,HOOK2/103/,SAFE/105/,SSLOT/107/ ! 175: DATA BRICK/109/,FUSE/110/ ! 176: DATA GNOME/111/,BLABE/112/,DBALL/113/,TOMB/119/ ! 177: DATA LCASE/123/,CAGE/124/,RCAGE/125/,SPHER/126/,SQBUT/127/ ! 178: DATA FLASK/132/,POOL/133/,SAFFR/134/,BUCKE/137/,ORICE/139/ ! 179: DATA ECAKE/138/,RDICE/140/ ! 180: DATA BLICE/141/,ROBOT/142/,FTREE/145/,BILLS/148/,PORTR/149/ ! 181: DATA SCOL/151/,ZGNOM/152/,EGG/154/,BEGG/155/,BAUBL/156/ ! 182: DATA CANAR/157/,BCANA/158/,YLWAL/159/ ! 183: DATA RDWAL/161/,PINDR/164/ ! 184: DATA RBEAM/171/,ODOOR/172/,QDOOR/173/,CDOOR/175/ ! 185: DATA NUM1/178/ ! 186: DATA NUM8/185/,WARNI/186/,CSLIT/187/,GCARD/188/,STLDR/189/ ! 187: DATA ITOBJ/192/,OPLAY/193/,EVERY/194/ ! 188: DATA VALUA/195/,SAILO/196/,TEETH/197/,WALL/198/ ! 189: DATA HANDS/200/,LUNGS/201/,AVIAT/202/ ! 190: DATA WNORT/205/,GWATE/209/,MASTER/215/ ! 191: C DUNGEON, PAGE 3 ! 192: C ! 193: C 1) INITIALIZE DATA STRUCTURES ! 194: C 2) PLAY GAME ! 195: C ! 196: IF(INIT(X)) CALL GAME ! 197: C !IF INIT, PLAY GAME. ! 198: CALL EXIT ! 199: C !DONE ! 200: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.