home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / games / volume2 / dungeon / part06 / dmain.F < prev    next >
Text File  |  1987-09-01  |  7KB  |  201 lines

  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/'A'/
  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
  201.