home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / vmsnet / monhl105 / delta1 < prev    next >
Encoding:
Text File  |  1992-12-05  |  43.4 KB  |  1,222 lines

  1. Newsgroups: vmsnet.sources.games
  2. Path: uunet!stanford.edu!agate!spool.mu.edu!darwin.sura.net!paladin.american.edu!news.univie.ac.at!hp4at!mcsun!news.funet.fi!hydra!klaava!hurtta
  3. From: Kari.Hurtta@Helsinki.FI
  4. Subject: Delta: Monster Helsinki 1.05 to 1.06 (part 1/5)
  5. Message-ID: <1992Dec6.164338.18427@klaava.Helsinki.FI>
  6. Followup-To: vmsnet.sources.d
  7. Sender: hurtta@klaava.Helsinki.FI (Kari Hurtta)
  8. Organization: University of Helsinki
  9. Date: Sun, 6 Dec 1992 16:43:38 GMT
  10. Lines: 1209
  11. Xref: uunet vmsnet.sources.games:557
  12.  
  13. Archive-name: monster_helsinki_105_to_106/part1
  14. Author: Kari.Hurtta@Helsinki.FI
  15. Package: Delta from Helsinki Monster 1.05 to Helsinki Monster 1.06
  16. Environment: VMS, Pascal
  17. Part: 1/5
  18.  
  19. $! ------------------ CUT HERE -----------------------
  20. $ v='f$verify(f$trnlnm("SHARE_VERIFY"))'
  21. $!
  22. $! This archive created by VMS_SHARE Version 7.2-010  25-Jun-1992
  23. $!   On  6-DEC-1992 17:16:51.61   By user HURTTA (Kari E. Hurtta <Kari.Hurtta@Helsinki.FI>)
  24. $!
  25. $! This VMS_SHARE Written by:
  26. $!    Andy Harper, Kings College London UK
  27. $!
  28. $! Acknowledgements to:
  29. $!    James Gray       - Original VMS_SHARE
  30. $!    Michael Bednarek - Original Concept and implementation
  31. $!
  32. $!+ THIS PACKAGE DISTRIBUTED IN 5 PARTS, TO KEEP EACH PART
  33. $!  BELOW 90 BLOCKS
  34. $!
  35. $! TO UNPACK THIS SHARE FILE, CONCATENATE ALL PARTS IN ORDER
  36. $! AND EXECUTE AS A COMMAND PROCEDURE  (  @name  )
  37. $!
  38. $! THE FOLLOWING FILE(S) WILL BE CREATED AFTER UNPACKING:
  39. $!       1. ALLOC.DIF;1
  40. $!       2. BONE.DIF;1
  41. $!       3. CASTLE.DIF;2
  42. $!       4. CLD_PROTO.DIF;1
  43. $!       5. CLI.DIF;1
  44. $!       6. COMMANDS.DIF;1
  45. $!       7. CONVERT.DIF;1
  46. $!       8. CUSTOM.DIF;1
  47. $!       9. DATABASE.DIF;1
  48. $!      10. DOG.DIF;1
  49. $!      11. FIX.DIF;1
  50. $!      12. GLOBAL.DIF;1
  51. $!      13. GREAT_HALL.DIF;1
  52. $!      14. GUTS.DIF;1
  53. $!      15. INIT.APPEND;5
  54. $!      16. INIT_PROTO.DIF;1
  55. $!      17. INTERPRETER.DIF;1
  56. $!      18. KEYS.DIF;1
  57. $!      19. MAKEFILE.DIF;1
  58. $!      20. MON.DIF;1
  59. $!      21. MONSTER_CLD.DIF;2
  60. $!      22. MONSTER_DUMP.DIF;2
  61. $!      23. MONSTER_E.DIF;1
  62. $!      24. MONSTER_HELP.DIF;1
  63. $!      25. MONSTER_INIT.DIF;1
  64. $!      26. MONSTER_INSTALL.DIF;1
  65. $!      27. MONSTER_REBUILD.DIF;1
  66. $!      28. MONSTER_WHO.DIF;1
  67. $!      29. NEW.TXT;1
  68. $!      30. PARSER.DIF;1
  69. $!      31. PRIVUSERS.DIF;1
  70. $!      32. QUEUE.DIF;1
  71. $!      33. READ.ME;5
  72. $!      34. RECEPTIONIST.DIF;1
  73. $!      35. UPDATE.COM;7
  74. $!      36. VERSION.DIF;1
  75. $!
  76. $set="set"
  77. $set symbol/scope=(nolocal,noglobal)
  78. $f=f$parse("SHARE_TEMP","SYS$SCRATCH:.TMP_"+f$getjpi("","PID"))
  79. $e="write sys$error  ""%UNPACK"", "
  80. $w="write sys$output ""%UNPACK"", "
  81. $ if f$trnlnm("SHARE_LOG") then $ w = "!"
  82. $ ve=f$getsyi("version")
  83. $ if ve-f$extract(0,1,ve) .ges. "4.4" then $ goto START
  84. $ e "-E-OLDVER, Must run at least VMS 4.4"
  85. $ v=f$verify(v)
  86. $ exit 44
  87. $UNPACK: SUBROUTINE ! P1=filename, P2=checksum
  88. $ x = P1 - f$parse(P1,,,"version")
  89. $ y = f$search(x)
  90. $ if y .eqs. "" then $ goto file_absent
  91. $ x = f$integer(f$parse(P1,,,"version")-";")
  92. $ y = f$integer(f$parse(y,,,"version")-";")
  93. $ if x .gt. y then $ goto file_absent
  94. $ if f$mode() .eqs. "INTERACTIVE" then $ goto file_interactive
  95. $ if x .eq. y then e "-W-EXISTS, File ''P1' exists. Skipped."
  96. $ if x .ne. y then e "-W-NEWERVERSION, of File ''P1' exists. Skipped."
  97. $file_delete:
  98. $ delete 'f'*
  99. $ exit
  100. $file_interactive:
  101. $ if x .eq. y then e "-W-EXISTS, File ''P1' exists."
  102. $ if x .ne. y then e "-W-NEWERVERSION, of File ''P1' exists."
  103. $ read/error=file_delete/end=file_delete-
  104.   /prompt="Create new version [y/n]: " -
  105.   sys$command x
  106. $ if .not. x then $ e "-W-SKIPPED, File ''P1' skipped."
  107. $ if .not. x then $ goto file_delete
  108. $ P1 = P1 - f$parse(P1,,,"version")
  109. $file_absent:
  110. $ if f$parse(P1) .nes. "" then $ goto dirok
  111. $ dn=f$parse(P1,,,"DIRECTORY")
  112. $ w "-I-CREDIR, Creating directory ''dn'."
  113. $ create/dir 'dn'
  114. $ if $status then $ goto dirok
  115. $ e "-E-CREDIRFAIL, Unable to create ''dn'. File skipped."
  116. $ delete 'f'*
  117. $ exit
  118. $dirok:
  119. $ w "-I-PROCESS, Processing file ''P1'."
  120. $ if .not. f$verify() then $ define/user sys$output nl:
  121. $ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT 'f'/OUT='P1'
  122. PROCEDURE Unpacker ON_ERROR ENDON_ERROR;SET(FACILITY_NAME,"UNPACK");SET(
  123. SUCCESS,OFF);SET(INFORMATIONAL,OFF);f:=GET_INFO(COMMAND_LINE,"file_name");b:=
  124. CREATE_BUFFER(f,f);p:=SPAN(" ")@r&LINE_END;POSITION(BEGINNING_OF(b));
  125. LOOP EXITIF SEARCH(p,FORWARD)=0;POSITION(r);ERASE(r);ENDLOOP;POSITION(
  126. BEGINNING_OF(b));g:=0;LOOP EXITIF MARK(NONE)=END_OF(b);x:=ERASE_CHARACTER(1);
  127. IF g=0 THEN IF x="X" THEN MOVE_VERTICAL(1);ENDIF;IF x="V" THEN APPEND_LINE;
  128. MOVE_HORIZONTAL(-CURRENT_OFFSET);MOVE_VERTICAL(1);ENDIF;IF x="+" THEN g:=1;
  129. ERASE_LINE;ENDIF;ELSE IF x="-" THEN IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+")=
  130. 1 THEN g:=0;ENDIF;ENDIF;ERASE_LINE;ENDIF;ENDLOOP;t:="0123456789ABCDEF";
  131. POSITION(BEGINNING_OF(b));LOOP r:=SEARCH("`",FORWARD);EXITIF r=0;POSITION(r);
  132. ERASE(r);x1:=INDEX(t,ERASE_CHARACTER(1))-1;x2:=INDEX(t,ERASE_CHARACTER(1))-1;
  133. COPY_TEXT(ASCII(16*x1+x2));ENDLOOP;WRITE_FILE(b,GET_INFO(COMMAND_LINE,
  134. "output_file"));ENDPROCEDURE;Unpacker;QUIT;
  135. $ delete/nolog 'f'*
  136. $ CHECKSUM 'P1'
  137. $ IF CHECKSUM$CHECKSUM .eqs. P2 THEN $ EXIT
  138. $ e "-E-CHKSMFAIL, Checksum of ''P1' failed."
  139. $ ENDSUBROUTINE
  140. $START:
  141. $ create 'f'
  142. X/
  143. $ CALL UNPACK ALLOC.DIF;1 47
  144. $ create 'f'
  145. X/
  146. $ CALL UNPACK BONE.DIF;1 47
  147. $ create 'f'
  148. X-    1,    2
  149. XDATABASE%1.04
  150. XBY%hurtta
  151. XCHARSET%MULTINATIONAL
  152. X-  895,  897
  153. XRCOUNT%93
  154. XECOUNT%93
  155. XLASTRUN%12-SEP-1992  6:04pm
  156. X- 1152, 1152
  157. XBLOCKB%The bone is ordinary. Some dog is very intensively attached`20
  158. XBLOCK%to it at the
  159. X- 1306, 1306
  160. XBLOCKB%half-filled with water.  On the bottom it some pieces of met
  161. XBLOCK%al apparently
  162. X- 1356, 1356
  163. XSHORTMEGA%    6:    5:    0:    0:GOSUB siirr`E4
  164. X- 1365, 1365
  165. XSHORTMEGA%   15:   14:    0:    0:GOSUB siirr`E4
  166. X- 1413, 1413
  167. XSHORTMEGA%   63:   62:    0:    0:LABEL siirr`E4
  168. X- 1734, 1734
  169. XBLOCKB%The neutron handgrenade is an ultimate weapon. Although it i
  170. XBLOCK%s simple to`20
  171. X- 1738, 1738
  172. XDESCLINEB%The neutron handgrenade is too dangerous weapon in
  173. XDESCLINE% the hands of fools.
  174. X- 1848, 1849
  175. XBLOCKB%  Take Gandalf's sargofaque?  Nah.  Just forget the idea  -`20
  176. XBLOCK% I just wonder
  177. XBLOCKB%where you got the idea?  Gandalf, within his return, would j
  178. XBLOCK%ust transform
  179. X- 1910, 1923
  180. XOWNER%*
  181. XCTIME% 5-AUG-1989  9:32am
  182. XSTATLAB%poof out
  183. XRCOUNT%4
  184. XECOUNT%4
  185. XLASTRUN%12-SEP-1992  6:01pm
  186. XSTATLAB%poof in
  187. XRCOUNT%66
  188. XECOUNT%66
  189. XLASTRUN%13-JUN-1992  4:51pm
  190. XSTATLAB%escaped
  191. XRCOUNT%583
  192. XECOUNT%583
  193. XLASTRUN%12-SEP-1992  6:01pm
  194. X- 1929, 1931
  195. XRCOUNT%287
  196. XECOUNT%0
  197. XLASTRUN% 6-DEC-1992 12:23pm
  198. X- 1935, 1935
  199. XLASTRUN% 6-DEC-1992 12:23pm
  200. X- 1941, 1943
  201. XRCOUNT%208
  202. XECOUNT%0
  203. XLASTRUN%13-JUN-1992  3:23pm
  204. X- 2336, 2338
  205. XBLOCKB%Kaikki huoneessa olevat tavarat yms. ovat minun omaisuuttani
  206. XBLOCK% eiv`E4tk`E4 ole
  207. XBLOCK%valmiita mihink`E4`E4n k`E4ytt`F6`F6n (jos koskaan ovatkaan). Jos k`E4
  208. Vllit jotain
  209. XBLOCK%k`E4sittelen sinua ansiosi mukaan!`20
  210. X- 2354, 2360
  211. XBLOCKB%************************************************************
  212. XBLOCK%**************
  213. XBLOCKB%*                                                          `20
  214. XBLOCK%             *
  215. XBLOCKB%*                            DIPLOMA                       `20
  216. XBLOCK%             *
  217. XBLOCKB%*                                                          `20
  218. XBLOCK%             *
  219. XBLOCKB%*      Goodgulf the Grey, Official Wizard of Next Level    `20
  220. XBLOCK%             *
  221. XBLOCKB%*                                                          `20
  222. XBLOCK%             *
  223. XBLOCKB%************************************************************
  224. XBLOCK%**************
  225. X- 2431, 2432
  226. XBLOCKB%for their unknown purposes.  In this end of the yard there a
  227. XBLOCK%re exits to
  228. XBLOCKB%the kitchen, where the cooks are preparing a banquet for the
  229. XBLOCK% lord of the
  230. X- 2532, 2532
  231. XBLOCKB%to the yard and for the ladders seemingly going in the verti
  232. XBLOCK%cal direction.
  233. X- 2618, 2618
  234. XBLOCKB%The ladders continue up and down.  There are also exits to t
  235. XBLOCK%he north to
  236. X- 2781, 2782
  237. XBLOCKB%You are in a dim hall at the top of wester tower. On the sou
  238. XBLOCK%th wall of`20
  239. XBLOCKB%that hall is a little window. There is a long table at the m
  240. XBLOCK%iddle of the
  241. X- 2851, 2851
  242. XBLOCKB%coming and going, their faces like engraved to the stone of`20
  243. XBLOCK%the castle.
  244. X- 2930, 2931
  245. XBLOCKB%  It is damned dark in here, but in the dim light you can ob
  246. XBLOCK%tain a guard
  247. XBLOCKB%abowe you.  The bones here and there tell you their own stor
  248. XBLOCK%y about the
  249. X- 3060, 3060
  250. XBLOCKB%The bridge leading out of the castle is to the west; to the`20
  251. XBLOCK%east there is
  252. X- 3081, 3082
  253. XBLOCKB%made things not spoken aloud but seen in many places.  Actua
  254. XBLOCK%lly, Gandalf`20
  255. XBLOCKB%made this very room to be his study and wants just a few vis
  256. XBLOCK%itors, if any.
  257. X- 3091, 3091
  258. XBLOCKB%think twice before arquing with him  -  you never can tell w
  259. XBLOCK%hether he is
  260. X- 3392, 3394
  261. XBLOCKB%  Watch your step  -  the architect was a bit drunk while pl
  262. XBLOCK%anning this
  263. XBLOCKB%castle so there is one little mistake in the design: if some
  264. XBLOCK%one wants to`20
  265. XBLOCKB%enter through the gate there is a possibility of danger to a
  266. XBLOCK%nyone being`20
  267. X- 3398, 3398
  268. XBLOCKB%  I suggest you to get out of here either to the south or to
  269. XBLOCK% the north.
  270. X- 3408, 3408
  271. XBLOCKB%  What do you think blood looks like?  I assure you, it IS r
  272. XBLOCK%ed, ketchup-
  273. X- 3687, 3687
  274. XBLOCKB%  What a view!  -  Well, that's what the entrenchment is for
  275. XBLOCK%, for seeing
  276. X- 3709, 3710
  277. XBLOCKB%Hm  -  I hope you don't suffer from dread for high places as
  278. XBLOCK% it is quite
  279. XBLOCKB%a drop to the yard below.  This balcony sorrounds the yard i
  280. XBLOCK%n the southern
  281. X- 3932, 3932
  282. XBLOCKB%Floor in this place is square, which one side might be about
  283. XBLOCK% six feets.
  284. X- 3940, 3940
  285. XBLOCKB%have wanted to cover all those holes between flagstones, how
  286. XBLOCK%ever you can
  287. X- 3952, 3952
  288. XBLOCKB%You look corners, one after one, and you find out that all u
  289. XBLOCK%rine, which
  290. X- 4144, 4144
  291. XBLOCKB%There is one large programmable monitor; it is of the newest
  292. XBLOCK% modell and
  293. X- 4330, 4330
  294. XBLOCKB%The room of sentries is a rest place for the soldiers guardi
  295. XBLOCK%ng the castle.
  296. X- 4481, 4484
  297. XDATE% 6-DEC-1992 12:24pm
  298. XTIME%
  299. XPASSWD%1
  300. XBIN%97
  301. X- 4500, 4500
  302. XLOC%gate
  303. X- 4524, 4524
  304. XBLOCKB%keen on torturing rats and pulling wings of the fly.  Well,`20
  305. XBLOCK%you guessed
  306. X- 4588, 4588
  307. XDESCLINEB%The man is badly wounded  -  a black arrow sticks`20
  308. XDESCLINE%through his chest.
  309. X- 4607, 4607
  310. XBLOCKB%The thing you are looking at is presumably the most discusti
  311. XBLOCK%ng creature
  312. X- 4634, 4634
  313. XDATE% 6-DEC-1992 12:24pm
  314. X- 4660, 4660
  315. XDATE%12-SEP-1992  6:04pm
  316. X- 5258, 5258
  317. XDESCLINEB%You leave the fresh air of the yard and enter the`20
  318. XDESCLINE%smithy of the castle.
  319. X- 6526, 6526
  320. XDESCLINEB%Why don't you just go out instead of hitting your`20
  321. XDESCLINE%head against the walls?
  322. X- 6542, 6542
  323. XDESCLINEB%Why don't you just go out instead of hitting your`20
  324. XDESCLINE%head against the walls?
  325. X- 6558, 6558
  326. XDESCLINEB%Why don't you just go out instead of hitting your`20
  327. XDESCLINE%head against the wall
  328. X- 6574, 6574
  329. XDESCLINEB%Why don't you just go out instead of hitting your`20
  330. XDESCLINE%head against the wall
  331. X- 6944, 6944
  332. XBLOCKB%  Hey, look at THAT!  Yap, the machinery you see in front of
  333. XBLOCK% you controls
  334. X- 7147, 7147
  335. XBLOCKB%are leaving.  In a single twist of his hand he throws you on
  336. XBLOCK%to a pile of
  337. X- 8458, 8458
  338. XSHORTMEGA%J247:0
  339. X- 8467, 8467
  340. XSHORTMEGA%J254:1:45
  341. X- 8489, 8489
  342. XSHORTMEGA%J238:1:70
  343. X- 8512, 8512
  344. XSHORTMEGA%J238:1:93
  345. X- 8530, 8530
  346. XSHORTMEGA%J268:0
  347. X- 8565, 8565
  348. XSHORTMEGA%J286:1:138
  349. X- 8638, 8640
  350. XSHORTMEGA%J274:1:204
  351. XSHORTMEGA%206:0:0:0:"man"
  352. XSHORTMEGA%J274:1:206
  353. X- 8659, 8763
  354. XSHORTMEGA%-220:160:185:0:47
  355. XSHORTMEGA%221:0:0:0:_monster name
  356. XSHORTMEGA%222:0:0:0:"100"
  357. XSHORTMEGA%-223:221:222:0:68
  358. XSHORTMEGA%-224:223:0:0:24
  359. XSHORTMEGA%-225:168:220:224:24
  360. XSHORTMEGA%-226:209:219:225:24
  361. XSHORTMEGA%H6:1:226:attack
  362. XSHORTMEGA%228:227:0:0:-
  363. XSHORTMEGA%H6:1:196:leave
  364. XSHORTMEGA%230:229:0:0:-
  365. XSHORTMEGA%-231:12:0:0:30
  366. XSHORTMEGA%232:0:0:0:"1500"
  367. XSHORTMEGA%-233:231:232:0:38
  368. XSHORTMEGA%234:0:0:0:_p1
  369. XSHORTMEGA%-235:231:234:0:31
  370. XSHORTMEGA%-236:235:0:0:35
  371. XSHORTMEGA%-237:233:236:0:22
  372. XSHORTMEGA%H6:1:237:GvExp
  373. XSHORTMEGA%239:238:0:0:-
  374. XSHORTMEGA%240:0:0:0:! Tax:
  375. XSHORTMEGA%J254:1:36
  376. XSHORTMEGA%H5:1:241:gold
  377. XSHORTMEGA%243:0:0:0:_gold
  378. XSHORTMEGA%J260:1:243
  379. XSHORTMEGA%-245:242:244:0:24
  380. XSHORTMEGA%H4:1:245:gold
  381. XSHORTMEGA%H6:1:246:Tax
  382. XSHORTMEGA%248:247:0:0:-
  383. XSHORTMEGA%249:0:0:0:_item
  384. XSHORTMEGA%-250:249:234:0:2
  385. XSHORTMEGA%-251:249:0:0:53
  386. XSHORTMEGA%-252:250:251:0:22
  387. XSHORTMEGA%H2:2:35:252:item
  388. XSHORTMEGA%H6:1:253:Get it
  389. XSHORTMEGA%255:254:0:0:-
  390. XSHORTMEGA%256:0:0:0:"treasurer"
  391. XSHORTMEGA%-257:234:0:0:50
  392. XSHORTMEGA%-258:257:0:0:9
  393. XSHORTMEGA%-259:256:258:0:44
  394. XSHORTMEGA%H6:1:259:Leave gold
  395. XSHORTMEGA%261:260:0:0:-
  396. XSHORTMEGA%262:0:0:0:! Paying:
  397. XSHORTMEGA%-263:36:0:0:53
  398. XSHORTMEGA%-264:36:0:0:50
  399. XSHORTMEGA%-265:264:0:0:9
  400. XSHORTMEGA%-266:256:265:0:44
  401. XSHORTMEGA%-267:263:266:0:24
  402. XSHORTMEGA%H6:1:267:Drop gold
  403. XSHORTMEGA%269:268:0:0:-
  404. XSHORTMEGA%270:0:0:0:! Listalta poisto:
  405. XSHORTMEGA%-271:234:0:0:46
  406. XSHORTMEGA%-272:271:76:0:45
  407. XSHORTMEGA%-273:234:272:0:47
  408. XSHORTMEGA%H6:1:273:poista
  409. XSHORTMEGA%275:274:0:0:-
  410. XSHORTMEGA%276:0:0:0:! Komennot
  411. XSHORTMEGA%-277:234:0:0:54
  412. XSHORTMEGA%278:0:0:0:"Gatekeeper"
  413. XSHORTMEGA%-279:277:278:0:2
  414. XSHORTMEGA%-280:234:0:0:55
  415. XSHORTMEGA%-281:280:0:0:54
  416. XSHORTMEGA%-282:280:0:0:55
  417. XSHORTMEGA%-283:282:0:0:29
  418. XSHORTMEGA%J304:2:281:283
  419. XSHORTMEGA%-285:279:284:0:22
  420. XSHORTMEGA%H6:1:285:parse
  421. XSHORTMEGA%287:286:0:0:-
  422. XSHORTMEGA%288:0:0:0:"add"
  423. XSHORTMEGA%-289:234:288:0:2
  424. XSHORTMEGA%290:0:0:0:_p2
  425. XSHORTMEGA%J315:1:290
  426. XSHORTMEGA%292:0:0:0:"del"
  427. XSHORTMEGA%-293:234:292:0:2
  428. XSHORTMEGA%J320:1:290
  429. XSHORTMEGA%295:0:0:0:"Gatekeeper: my commands are:"
  430. XSHORTMEGA%-296:295:0:0:15
  431. XSHORTMEGA%297:0:0:0:"say gatekeeper add <player name>"
  432. XSHORTMEGA%-298:297:0:0:15
  433. XSHORTMEGA%299:0:0:0:"say gatekeeper del <player name>"
  434. XSHORTMEGA%-300:299:0:0:15
  435. XSHORTMEGA%-301:296:298:300:24
  436. XSHORTMEGA%-302:293:294:301:22
  437. XSHORTMEGA%-303:289:291:302:22
  438. XSHORTMEGA%H6:1:303:komento
  439. XSHORTMEGA%305:304:0:0:-
  440. XSHORTMEGA%306:0:0:0:"List is now: "
  441. XSHORTMEGA%-307:306:21:0:15
  442. XSHORTMEGA%H6:1:307:my list
  443. XSHORTMEGA%309:308:0:0:-
  444. XSHORTMEGA%-310:234:0:0:65
  445. XSHORTMEGA%-311:21:310:0:12
  446. XSHORTMEGA%-312:311:0:0:37
  447. XSHORTMEGA%J308:0
  448. XSHORTMEGA%-314:312:313:0:24
  449. XSHORTMEGA%H6:1:314:c add
  450. XSHORTMEGA%316:315:0:0:-
  451. XSHORTMEGA%-317:21:310:0:45
  452. XSHORTMEGA%-318:317:0:0:37
  453. XSHORTMEGA%-319:318:313:0:24
  454. XSHORTMEGA%H6:1:319:c del
  455. XSHORTMEGA%321:320:0:0:-
  456. X- 8769, 8781
  457. XRCOUNT%4
  458. XECOUNT%0
  459. XLASTRUN% 6-DEC-1992 12:24pm
  460. XSTATLAB%look
  461. XRCOUNT%4
  462. XECOUNT%4
  463. XLASTRUN% 6-DEC-1992 12:24pm
  464. XSTATLAB%leave
  465. XRCOUNT%5
  466. XECOUNT%0
  467. XLASTRUN% 6-DEC-1992 12:24pm
  468. XAUTHOR%hurtta
  469. XWTIME%12-SEP-1992  6:01pm
  470. X- 9113, 9123
  471. XRCOUNT%134
  472. XECOUNT%134
  473. XLASTRUN%12-SEP-1992  6:04pm
  474. XSTATLAB%look
  475. XRCOUNT%184
  476. XECOUNT%184
  477. XLASTRUN%12-SEP-1992  6:04pm
  478. XSTATLAB%leave
  479. XRCOUNT%135
  480. XECOUNT%135
  481. XLASTRUN%12-SEP-1992  6:04pm
  482. X- 9244, 9244
  483. XBLOCKB%are becoming to feel cold.  Don't get cold  -  Merlin takes`20
  484. XBLOCK%quite a lot
  485. X- 9941, 9941
  486. XBLOCKB%Don't you know jumping down from high places is NOT good for
  487. XBLOCK% your health?
  488. X-10145,10145
  489. XBLOCKB%  Hey, look at THAT!  Yap, the machinery you see in front of
  490. XBLOCK% you controls
  491. X-10687,10687
  492. XBLOCKB%Below the piles of dirt, you find enough big hole between tw
  493. XBLOCK%o flagstones.
  494. X-11509,11509
  495. XBLOCKB%you will be in the dungeon before you can say "Gimme one mor
  496. XBLOCK%e, pleashe!".
  497. X/
  498. $ CALL UNPACK CASTLE.DIF;2 3006105106
  499. $ create 'f'
  500. X-   45,   45
  501. X   disallow (START and (BUILD or DUMP or REBUILD or FIX))
  502. X/
  503. $ CALL UNPACK CLD_PROTO.DIF;1 459622085
  504. $ create 'f'
  505. X/
  506. $ CALL UNPACK CLI.DIF;1 47
  507. $ create 'f'
  508. X-   39,   39
  509. X                                spell level / set spell level / prog /
  510. X                                boolean and / boolean or /
  511. X`09`09`09`09or else / and then
  512. X-   63,   64
  513. X`09`09and`09select the common elements of parameters
  514. X`09`09or `09select all elements from parameters
  515. X                boolean and       returns "TRUE" if all parameters are non-n
  516. Vull
  517. X                boolean or        returns "TRUE" if least one paramater is`2
  518. V0
  519. X                                     non-null
  520. X-  105,  105
  521. X`09`09get global flag`09returns global flags, what have true from
  522. X                                    given flags
  523. X-  155
  524. X`09`09or else`09`09evalutes paramaters until some paramater
  525. X`09`09`09`09`09return no null result
  526. X`09`09and then`09avalutes paramaters until some paramater
  527. X`09`09`09`09`09returns null result
  528. X-  250,  250
  529. X`09not, less, boolean and, boolean or
  530. X-  295,  295
  531. X`09`09get global flag`09List of true flags`09> item list
  532. X-  300,  302
  533. X`09`09all players`09list of players`09`09> item list`20
  534. X`09`09all rooms`09list of rooms`09`09> item list
  535. X`09`09all objects`09list of objects`09`09> item list`20
  536. X-  325
  537. X`09`09boolean and     "" or "TRUE"
  538. X`09`09boolean or      "" or "TRUE"
  539. X`09`09or else`09`09last evaluted parameter
  540. X`09`09and then`09last evaluted paramater
  541. X-  447
  542. Xboolean and     (<boolean value 1>,...,<boolean value n>)
  543. Xboolean or      (<boolean value 1>,...,<boolean value n>)
  544. Xor else`09`09(<condition 1>,...,<condition n>)
  545. Xand then`09(<condition 1>,...,<condition n>)
  546. X/
  547. $ CALL UNPACK COMMANDS.DIF;1 1014113970
  548. $ create 'f'
  549. X/
  550. $ CALL UNPACK CONVERT.DIF;1 47
  551. $ create 'f'
  552. X-   33
  553. X    8.08.1992 `7C         `7C Now do_program (custom object) prints help whe
  554. Vn`20
  555. X              `7C         `7C ambiquous name
  556. X   12.08.1992 `7C         `7C function parse_pers moved to module PARSER
  557. X              `7C         `7C myslot moved to module PARSER
  558. X-   47,   47
  559. X        `7B myslot moved to module PARSER `7D
  560. X- 1039, 1046
  561. X`7B function parse_pers moved to module PARSER `7D
  562. X
  563. X`5Bglobal`5D function lookup_level(var n: integer;s:string): boolean;
  564. Xvar
  565. X`09i,poss,maybe,num: integer;
  566. Xbegin
  567. X`09n := 0;
  568. X- 1051, 1062
  569. X`09for i := 1 to levels do begin
  570. X`09`09if s = lowcase (leveltable`5Bi`5D.name) then
  571. X`09`09`09num := i
  572. X`09`09else if index(lowcase (leveltable`5Bi`5D.name),s) = 1 then begin
  573. X`09`09`09maybe := maybe + 1;
  574. X`09`09`09poss := i;
  575. X- 1066, 1105
  576. X- 1770, 1770
  577. X`09if lookup_dir(dir,dirnam,true) then begin
  578. X- 2411, 2411
  579. X`09else if lookup_obj(objnum,object_name,true) then begin
  580. X- 2970, 2970
  581. X  else if parse_pers(mslot,name,true) then begin
  582. X/
  583. $ CALL UNPACK CUSTOM.DIF;1 574979660
  584. $ create 'f'
  585. X/
  586. $ CALL UNPACK DATABASE.DIF;1 47
  587. $ create 'f'
  588. X/
  589. $ CALL UNPACK DOG.DIF;1 47
  590. $ create 'f'
  591. X/
  592. $ CALL UNPACK FIX.DIF;1 47
  593. $ create 'f'
  594. X-  233
  595. X`09s_charset = 13;
  596. X-  397,  397
  597. XType`09chartype = ( ct_none, ct_letter, ct_space, ct_special );
  598. X
  599. X`09charrec = record
  600. X`09    kind: chartype;
  601. X`09    ucase: char;
  602. X`09    lcase: char;
  603. X`09end;
  604. X-  748
  605. X
  606. X`09chartable_charset : `5Bglobal`5D string := 'MULTINATIONAL';
  607. X`09chartable : `5Bglobal`5D array `5B char `5D of charrec :=
  608. X`09    `7B Dec Multinational charcter set for default: `7D
  609. X`09(   ( ct_none, ''(0), ''(0) ),`09    `7B 0 : NUL `7D
  610. X`09    ( ct_none, ''(1), ''(1) ),`09    `7B 1 : SOH `7D
  611. X`09    ( ct_none, ''(2), ''(2) ),`09    `7B 2 : STX `7D
  612. X`09    ( ct_none, ''(3), ''(3) ),`09    `7B 3 : ETX `7D
  613. X`09    ( ct_none, ''(4), ''(4) ),`09    `7B 4 : EOT `7D
  614. X`09    ( ct_none, ''(5), ''(5) ),`09    `7B 5 : ENQ `7D
  615. X`09    ( ct_none, ''(6), ''(6) ),`09    `7B 6 : ACK `7D
  616. X`09    ( ct_none, ''(7), ''(7) ),`09    `7B 7 : BEL `7D
  617. X`09    ( ct_none, ''(8), ''(8) ),`09    `7B 8 : BS `7D
  618. X`09    ( ct_space, ''(9), ''(9) ),`09    `7B 9 : HT `7D
  619. X`09    ( ct_space, ''(10), ''(10) ),`09    `7B 10 : LF `7D
  620. X`09    ( ct_space, ''(11), ''(11) ),`09    `7B 11 : VT `7D
  621. X`09    ( ct_space, ''(12), ''(12) ),`09    `7B 12 : FF `7D
  622. X`09    ( ct_space, ''(13), ''(13) ),`09    `7B 13 : CR `7D
  623. X`09    ( ct_none, ''(14), ''(14) ),`09    `7B 14 : SO `7D
  624. X`09    ( ct_none, ''(15), ''(15) ),`09    `7B 15 : SI `7D
  625. X`09    ( ct_none, ''(16), ''(16) ),`09    `7B 16 : DLE `7D
  626. X`09    ( ct_none, ''(17), ''(17) ),`09    `7B 17 : DC1 `7D
  627. X`09    ( ct_none, ''(18), ''(18) ),`09    `7B 18 : DC2 `7D
  628. X`09    ( ct_none, ''(19), ''(19) ),`09    `7B 19 : DC3 `7D
  629. X`09    ( ct_none, ''(20), ''(20) ),`09    `7B 20 : DC4 `7D
  630. X`09    ( ct_none, ''(21), ''(21) ),`09    `7B 21 : NAK `7D
  631. X`09    ( ct_none, ''(22), ''(22) ),`09    `7B 22 : SYN `7D
  632. X`09    ( ct_none, ''(23), ''(23) ),`09    `7B 23 : ETB `7D
  633. X`09    ( ct_none, ''(24), ''(24) ),`09    `7B 24 : CAN `7D
  634. X`09    ( ct_none, ''(25), ''(25) ),`09    `7B 25 : EM `7D
  635. X`09    ( ct_none, ''(26), ''(26) ),`09    `7B 26 : SUB `7D
  636. X`09    ( ct_none, ''(27), ''(27) ),`09    `7B 27 : ESC `7D
  637. X`09    ( ct_none, ''(28), ''(28) ),`09    `7B 28 : FS `7D
  638. X`09    ( ct_none, ''(29), ''(29) ),`09    `7B 29 : GS `7D
  639. X`09    ( ct_none, ''(30), ''(30) ),`09    `7B 30 : RS `7D
  640. X`09    ( ct_none, ''(31), ''(31) ),`09    `7B 31 : US `7D
  641. X`09    ( ct_space, ' ', ' ' ),`09`09    `7B 32 : SP `7D
  642. X`09    ( ct_special, '!', '!' ),`09`09    `7B 33 : ! `7D
  643. X`09    ( ct_special, '"', '"' ),`09`09    `7B 34 : " `7D
  644. X`09    ( ct_special, '#', '#' ),`09`09    `7B 35 : # `7D
  645. X`09    ( ct_special, '$', '$' ),`09`09    `7B 36 : $ `7D
  646. X`09    ( ct_special, '%', '%' ),`09`09    `7B 37 : % `7D
  647. X`09    ( ct_special, '&', '&' ),`09`09    `7B 38 : & `7D
  648. X`09    ( ct_special, '''', '''' ),`09`09    `7B 39 : ' `7D
  649. X`09    ( ct_special, '(', '(' ),`09`09    `7B 40 : ( `7D
  650. X`09    ( ct_special, ')', ')' ),`09`09    `7B 41 : ) `7D
  651. X`09    ( ct_special, '*', '*' ),`09`09    `7B 42 : ! `7D
  652. X`09    ( ct_special, '+', '+' ),`09`09    `7B 43 : ! `7D
  653. X`09    ( ct_special, ',', ',' ),`09`09    `7B 44 : ' `7D
  654. X`09    ( ct_special, '-', '-' ),`09`09    `7B 45 : - `7D
  655. X`09    ( ct_special, '.', '.' ),`09`09    `7B 46 : . `7D
  656. X`09    ( ct_special, '/', '/' ),`09`09    `7B 47 : / `7D
  657. X`09    ( ct_special, '0', '0' ),`09`09    `7B 48 : 0 `7D
  658. X`09    ( ct_special, '1', '1' ),`09`09    `7B 49 : 1 `7D
  659. X`09    ( ct_special, '2', '2' ),`09`09    `7B 50 : 2 `7D
  660. X`09    ( ct_special, '3', '3' ),`09`09    `7B 51 : 3 `7D
  661. X`09    ( ct_special, '4', '4' ),`09`09    `7B 52 : 4 `7D
  662. X`09    ( ct_special, '5', '5' ),`09`09    `7B 53 : 5 `7D
  663. X`09    ( ct_special, '6', '6' ),`09`09    `7B 54 : 6 `7D
  664. X`09    ( ct_special, '7', '7' ),`09`09    `7B 55 : 7 `7D
  665. X`09    ( ct_special, '8', '8' ),`09`09    `7B 56 : 8 `7D
  666. X`09    ( ct_special, '9', '9' ),`09`09    `7B 57 : 9 `7D
  667. X`09    ( ct_special, ':', ':' ),`09`09    `7B 58 : : `7D
  668. X`09    ( ct_special, ';', ';' ),`09`09    `7B 59 : ; `7D
  669. X`09    ( ct_special, '<', '<' ),`09`09    `7B 60 : < `7D
  670. X`09    ( ct_special, '=', '=' ),`09`09    `7B 61 : = `7D
  671. X`09    ( ct_special, '>', '>' ),`09`09    `7B 62 : > `7D
  672. X`09    ( ct_special, '?', '?' ),`09`09    `7B 63 : ? `7D
  673. X`09    ( ct_special, '@', '@' ),`09`09    `7B 64 : @ `7D
  674. X`09    ( ct_letter,  'A', 'a' ),`09`09    `7B 65 : A `7D
  675. X`09    ( ct_letter,  'B', 'b' ),`09`09    `7B 66 : B `7D
  676. X`09    ( ct_letter,  'C', 'c' ),`09`09    `7B 67 : C `7D
  677. X`09    ( ct_letter,  'D', 'd' ),`09`09    `7B 68 : D `7D
  678. X`09    ( ct_letter,  'E', 'e' ),`09`09    `7B 69 : E `7D
  679. X`09    ( ct_letter,  'F', 'f' ),`09`09    `7B 70 : F `7D
  680. X`09    ( ct_letter,  'G', 'g' ),`09`09    `7B 71 : G `7D
  681. X`09    ( ct_letter,  'H', 'h' ),`09`09    `7B 72 : H `7D
  682. X`09    ( ct_letter,  'I', 'i' ),`09`09    `7B 73 : I `7D
  683. X`09    ( ct_letter,  'J', 'j' ),`09`09    `7B 74 : J `7D
  684. X`09    ( ct_letter,  'K', 'k' ),`09`09    `7B 75 : K `7D
  685. X`09    ( ct_letter,  'L', 'l' ),`09`09    `7B 76 : L `7D
  686. X`09    ( ct_letter,  'M', 'm' ),`09`09    `7B 77 : M `7D
  687. X`09    ( ct_letter,  'N', 'n' ),`09`09    `7B 78 : N `7D
  688. X`09    ( ct_letter,  'O', 'o' ),`09`09    `7B 79 : O `7D
  689. X`09    ( ct_letter,  'P', 'p' ),`09`09    `7B 80 : P `7D
  690. X`09    ( ct_letter,  'Q', 'q' ),`09`09    `7B 81 : Q `7D
  691. X`09    ( ct_letter,  'R', 'r' ),`09`09    `7B 82 : R `7D
  692. X`09    ( ct_letter,  'S', 's' ),`09`09    `7B 83 : S `7D
  693. X`09    ( ct_letter,  'T', 't' ),`09`09    `7B 84 : T `7D
  694. X`09    ( ct_letter,  'U', 'u' ),`09`09    `7B 85 : U `7D
  695. X`09    ( ct_letter,  'V', 'v' ),`09`09    `7B 86 : V `7D
  696. X`09    ( ct_letter,  'W', 'w' ),`09`09    `7B 87 : W `7D
  697. X`09    ( ct_letter,  'X', 'X' ),`09`09    `7B 88 : X `7D
  698. X`09    ( ct_letter,  'Y', 'y' ),`09`09    `7B 89 : Y `7D
  699. X`09    ( ct_letter,  'Z', 'z' ),`09`09    `7B 90 : Z `7D
  700. X`09    ( ct_special,  '`5B', '`5B' ),`09`09    `7B 91 : `5B `7D
  701. X`09    ( ct_special,  '\', '\' ),`09`09    `7B 92 : \ `7D
  702. X`09    ( ct_special,  '`5D', '`5D' ),`09`09    `7B 93 : `5D `7D
  703. X`09    ( ct_special,  '`5E', '`5E' ),`09`09    `7B 94 : `5E `7D
  704. X`09    ( ct_special,  '_', '_' ),`09`09    `7B 95 : _ `7D
  705. X`09    ( ct_special,  '`60', '`60' ),`09`09    `7B 96 : `60 `7D
  706. X`09    ( ct_letter,  'A', 'a' ),`09`09    `7B 97 : a `7D
  707. X`09    ( ct_letter,  'B', 'b' ),`09`09    `7B 98 : b `7D
  708. X`09    ( ct_letter,  'C', 'c' ),`09`09    `7B 99 : c `7D
  709. X`09    ( ct_letter,  'D', 'd' ),`09`09    `7B 100 : d `7D
  710. X`09    ( ct_letter,  'E', 'e' ),`09`09    `7B 101 : e `7D
  711. X`09    ( ct_letter,  'F', 'f' ),`09`09    `7B 102 : f `7D
  712. X`09    ( ct_letter,  'G', 'g' ),`09`09    `7B 103 : g `7D
  713. X`09    ( ct_letter,  'H', 'h' ),`09`09    `7B 104 : h `7D
  714. X`09    ( ct_letter,  'I', 'i' ),`09`09    `7B 105 : i `7D
  715. X`09    ( ct_letter,  'J', 'j' ),`09`09    `7B 106 : j `7D
  716. X`09    ( ct_letter,  'K', 'k' ),`09`09    `7B 107 : k `7D
  717. X`09    ( ct_letter,  'L', 'l' ),`09`09    `7B 108 : l `7D
  718. X`09    ( ct_letter,  'M', 'm' ),`09`09    `7B 109 : m `7D
  719. X`09    ( ct_letter,  'N', 'n' ),`09`09    `7B 110 : n `7D
  720. X`09    ( ct_letter,  'O', 'o' ),`09`09    `7B 111 : o `7D
  721. X`09    ( ct_letter,  'P', 'p' ),`09`09    `7B 112 : p `7D
  722. X`09    ( ct_letter,  'Q', 'q' ),`09`09    `7B 113 : q `7D
  723. X`09    ( ct_letter,  'R', 'r' ),`09`09    `7B 114 : r `7D
  724. X`09    ( ct_letter,  'S', 's' ),`09`09    `7B 115 : s `7D
  725. X`09    ( ct_letter,  'T', 't' ),`09`09    `7B 116 : t `7D
  726. X`09    ( ct_letter,  'U', 'u' ),`09`09    `7B 117 : u `7D
  727. X`09    ( ct_letter,  'V', 'v' ),`09`09    `7B 118 : v `7D
  728. X`09    ( ct_letter,  'W', 'w' ),`09`09    `7B 119 : w `7D
  729. X`09    ( ct_letter,  'X', 'x' ),`09`09    `7B 120 : x `7D
  730. X`09    ( ct_letter,  'Y', 'y' ),`09`09    `7B 121 : y `7D
  731. X`09    ( ct_letter,  'Z', 'Z' ),`09`09    `7B 122 : z `7D
  732. X`09    ( ct_special,  '`7B', '`7B' ),`09`09    `7B 123 `7D
  733. X`09    ( ct_special,  '`7C', '`7C' ),`09`09    `7B 124 : `7C `7D
  734. X`09    ( ct_special,  '`7D', '`7D' ),`09`09    `7B 125 `7D
  735. X`09    ( ct_special,  '`7E', '`7E' ),`09`09    `7B 126 : `7E `7D
  736. X`09    ( ct_none, ''(127), ''(127) ),`09    `7B 127 : DEL `7D
  737. X`09    ( ct_none, ''(128), ''(128) ),  `7B 128 `7D
  738. X`09    ( ct_none, ''(129), ''(129) ),  `7B 129 `7D
  739. X`09    ( ct_none, ''(130), ''(130) ),  `7B 130 `7D
  740. X`09    ( ct_none, ''(131), ''(131) ),  `7B 131 `7D
  741. X`09    ( ct_none, ''(132), ''(132) ),  `7B 132 : IND `7D
  742. X`09    ( ct_none, ''(133), ''(133) ),  `7B 133 : NEL `7D
  743. X`09    ( ct_none, ''(134), ''(134) ),  `7B 134 : SSA `7D
  744. X`09    ( ct_none, ''(135), ''(135) ),  `7B 135 : ESA `7D
  745. X`09    ( ct_none, ''(136), ''(136) ),  `7B 136 : HTS `7D
  746. X`09    ( ct_none, ''(137), ''(137) ),  `7B 137 : HTJ `7D
  747. X`09    ( ct_none, ''(138), ''(138) ),  `7B 138 : VTS `7D
  748. X`09    ( ct_none, ''(139), ''(139) ),  `7B 139 : PLD `7D
  749. X`09    ( ct_none, ''(140), ''(140) ),  `7B 140 : PLU `7D
  750. X`09    ( ct_none, ''(141), ''(141) ),  `7B 141 : RI `7D
  751. X`09    ( ct_none, ''(142), ''(142) ),  `7B 142 : SS2 `7D
  752. X`09    ( ct_none, ''(143), ''(143) ),  `7B 143 : SS3 `7D
  753. X`09    ( ct_none, ''(144), ''(144) ),  `7B 144 : DCS `7D
  754. X`09    ( ct_none, ''(145), ''(145) ),  `7B 145 : PU1 `7D
  755. X`09    ( ct_none, ''(146), ''(146) ),  `7B 146 : PU2 `7D
  756. X`09    ( ct_none, ''(147), ''(147) ),  `7B 147 : STS `7D
  757. X`09    ( ct_none, ''(148), ''(148) ),  `7B 148 : CCH `7D
  758. X`09    ( ct_none, ''(149), ''(149) ),  `7B 149 : MW `7D
  759. X`09    ( ct_none, ''(150), ''(150) ),  `7B 150 : SPA `7D
  760. X`09    ( ct_none, ''(151), ''(151) ),  `7B 151 : EPA `7D
  761. X`09    ( ct_none, ''(152), ''(152) ),  `7B 152 `7D
  762. X`09    ( ct_none, ''(153), ''(153) ),  `7B 153 `7D
  763. X`09    ( ct_none, ''(154), ''(154) ),  `7B 154 `7D
  764. X`09    ( ct_none, ''(155), ''(155) ),  `7B 155 : CSI `7D
  765. X`09    ( ct_none, ''(156), ''(156) ),  `7B 156 : ST `7D
  766. X`09    ( ct_none, ''(157), ''(157) ),  `7B 157 : OSC `7D
  767. X`09    ( ct_none, ''(158), ''(158) ),  `7B 158 : PM `7D
  768. X`09    ( ct_none, ''(159), ''(159) ),  `7B 159 : APC `7D
  769. X`09    ( ct_special, ''(160), ''(160) ),`09`7B 160 : `A0 `7D
  770. X`09    ( ct_special, ''(161), ''(161) ),`09`7B 161 : `A1 `7D
  771. X`09    ( ct_special, ''(162), ''(162) ),`09`7B 162 `7D
  772. X`09    ( ct_special, ''(163), ''(163) ),`09`7B 163 `7D
  773. X`09    ( ct_none, ''(164), ''(164) ),`09`7B 164 `7D
  774. X`09    ( ct_special, ''(165), ''(165) ),`09`7B 165 : `A5 `7D
  775. X`09    ( ct_none, ''(166), ''(166) ),`09`7B 166 `7D
  776. X`09    ( ct_special, ''(167), ''(167) ),`09`7B 167 `7D
  777. X`09    ( ct_special, ''(168), ''(168) ),`09`7B 168 `7D
  778. X`09    ( ct_special, ''(169), ''(169) ),`09`7B 169 `7D
  779. X`09    ( ct_special, ''(170), ''(170) ),`09`7B 170 : `AA `7D
  780. X`09    ( ct_special, ''(171), ''(171) ),`09`7B 171 : `AB `7D
  781. X`09    ( ct_none, ''(172), ''(172) ),`09`7B 172 `7D
  782. X`09    ( ct_none, ''(173), ''(173) ),`09`7B 173 `7D
  783. X`09    ( ct_none, ''(174), ''(174) ),`09`7B 174 `7D
  784. X`09    ( ct_none, ''(175), ''(175) ),`09`7B 175 `7D
  785. X`09    ( ct_special, ''(176), ''(176) ),`09`7B 176 : `B0 `7D
  786. X`09    ( ct_special, ''(177), ''(177) ),`09`7B 177 : `B1 `7D
  787. X`09    ( ct_special, ''(178), ''(178) ),`09`7B 178 : `B2 `7D
  788. X`09    ( ct_special, ''(179), ''(179) ),`09`7B 179 `7D
  789. X`09    ( ct_none, ''(180), ''(180) ),`09`7B 180 `7D
  790. X`09    ( ct_special, ''(181), ''(181) ),`09`7B 181 : `B5 `7D
  791. X`09    ( ct_special, ''(182), ''(182) ),`09`7B 182 `7D
  792. X`09    ( ct_special, ''(183), ''(183) ),`09`7B 183 `7D
  793. X`09    ( ct_none, ''(184), ''(184) ),`09`7B 184 `7D
  794. X`09    ( ct_special, ''(185), ''(185) ),`09`7B 185 `7D
  795. X`09    ( ct_special, ''(186), ''(186) ),`09`7B 186 : `BA `7D
  796. X`09    ( ct_special, ''(187), ''(187) ),`09`7B 187 : `BB `7D
  797. X`09    ( ct_special, ''(188), ''(188) ),`09`7B 188 : `BC `7D
  798. X`09    ( ct_special, ''(189), ''(189) ),`09`7B 189 : `BD `7D
  799. X`09    ( ct_none, ''(190), ''(190) ),`09`7B 190 `7D
  800. X`09    ( ct_special, ''(191), ''(191) ),`09`7B 191 : `BF `7D
  801. X`09    ( ct_letter, ''(192), ''(224) ),`09`7B 192 `7D
  802. X`09    ( ct_letter, ''(193), ''(225) ),`09`7B 193 `7D
  803. X`09    ( ct_letter, ''(194), ''(226) ),`09`7B 194 `7D
  804. X`09    ( ct_letter, ''(195), ''(227) ),`09`7B 195 `7D
  805. X`09    ( ct_letter, ''(196), ''(228) ),`09`7B 196 : `C4 `7D
  806. X`09    ( ct_letter, ''(197), ''(229) ),`09`7B 197 : `C5 `7D
  807. X`09    ( ct_letter, ''(198), ''(230) ),`09`7B 198 : `C6 `7D
  808. X`09    ( ct_letter, ''(199), ''(231) ),`09`7B 199 `7D
  809. X`09    ( ct_letter, ''(200), ''(232) ),`09`7B 200 `7D
  810. X`09    ( ct_letter, ''(201), ''(233) ),`09`7B 201 : `C9 `7D
  811. X`09    ( ct_letter, ''(202), ''(234) ),`09`7B 202 `7D
  812. X`09    ( ct_letter, ''(203), ''(235) ),`09`7B 203 `7D
  813. X`09    ( ct_letter, ''(204), ''(236) ),`09`7B 204 `7D
  814. X`09    ( ct_letter, ''(205), ''(237) ),`09`7B 205 `7D
  815. X`09    ( ct_letter, ''(206), ''(238) ),`09`7B 206 `7D
  816. X`09    ( ct_letter, ''(207), ''(239) ),`09`7B 207 `7D
  817. X`09    ( ct_none, ''(208), ''(208) ),`09`7B 208 `7D
  818. X`09    ( ct_letter, ''(209), ''(241) ),`09`7B 209 : `D1 `7D
  819. X`09    ( ct_letter, ''(210), ''(242) ),`09`7B 210 `7D
  820. X`09    ( ct_letter, ''(211), ''(243) ),`09`7B 211 `7D
  821. X`09    ( ct_letter, ''(212), ''(244) ),`09`7B 212 `7D
  822. X`09    ( ct_letter, ''(213), ''(245) ),`09`7B 213 `7D
  823. X`09    ( ct_letter, ''(214), ''(246) ),`09`7B 214 : `D6 `7D
  824. X`09    ( ct_letter, ''(215), ''(247) ),`09`7B 215 `7D
  825. X`09    ( ct_letter, ''(216), ''(248) ),`09`7B 216 `7D
  826. X`09    ( ct_letter, ''(217), ''(249) ),`09`7B 217 `7D
  827. X`09    ( ct_letter, ''(218), ''(250) ),`09`7B 218 `7D
  828. X`09    ( ct_letter, ''(219), ''(251) ),`09`7B 219 `7D
  829. X`09    ( ct_letter, ''(220), ''(252) ),`09`7B 220 `7D
  830. X`09    ( ct_letter, ''(221), ''(253) ),`09`7B 221 `7D
  831. X`09    ( ct_none, ''(222), ''(222) ),`09`7B 222 `7D
  832. X`09    ( ct_letter, ''(223), ''(223) ),`09`7B 223 `7D   `20
  833. X`09    ( ct_letter, ''(192), ''(224) ),`09`7B 224 `7D
  834. X`09    ( ct_letter, ''(193), ''(225) ),`09`7B 225 `7D
  835. X`09    ( ct_letter, ''(194), ''(226) ),`09`7B 226 `7D
  836. X`09    ( ct_letter, ''(195), ''(227) ),`09`7B 227 `7D
  837. X`09    ( ct_letter, ''(196), ''(228) ),`09`7B 228 : `E4 `7D
  838. X`09    ( ct_letter, ''(197), ''(229) ),`09`7B 229 : `E4 `7D
  839. X`09    ( ct_letter, ''(198), ''(230) ),`09`7B 230 : `E6 `7D
  840. X`09    ( ct_letter, ''(199), ''(231) ),`09`7B 231 `7D
  841. X`09    ( ct_letter, ''(200), ''(232) ),`09`7B 232 `7D
  842. X`09    ( ct_letter, ''(201), ''(233) ),`09`7B 233 `7D
  843. X`09    ( ct_letter, ''(202), ''(234) ),`09`7B 234 `7D
  844. X`09    ( ct_letter, ''(203), ''(235) ),`09`7B 235 `7D
  845. X`09    ( ct_letter, ''(204), ''(236) ),`09`7B 236 `7D
  846. X`09    ( ct_letter, ''(205), ''(237) ),`09`7B 237 `7D
  847. X`09    ( ct_letter, ''(206), ''(238) ),`09`7B 238 `7D
  848. X`09    ( ct_letter, ''(207), ''(239) ),`09`7B 239 `7D
  849. X`09    ( ct_none, ''(240), ''(240) ),`09`7B 240 `7D
  850. X`09    ( ct_letter, ''(209), ''(241) ),`09`7B 241 `7D
  851. X`09    ( ct_letter, ''(210), ''(242) ),`09`7B 242 `7D
  852. X`09    ( ct_letter, ''(211), ''(243) ),`09`7B 243 `7D
  853. X`09    ( ct_letter, ''(212), ''(244) ),`09`7B 244 `7D
  854. X`09    ( ct_letter, ''(213), ''(245) ),`09`7B 245 `7D
  855. X`09    ( ct_letter, ''(214), ''(246) ),`09`7B 246 : `F6 `7D
  856. X`09    ( ct_letter, ''(215), ''(247) ),`09`7B 247 `7D
  857. X`09    ( ct_letter, ''(216), ''(248) ),`09`7B 248 `7D
  858. X`09    ( ct_letter, ''(217), ''(249) ),`09`7B 249 `7D
  859. X`09    ( ct_letter, ''(218), ''(250) ),`09`7B 250 `7D
  860. X`09    ( ct_letter, ''(219), ''(251) ),`09`7B 251 `7D
  861. X`09    ( ct_letter, ''(220), ''(252) ),`09`7B 252 `7D
  862. X`09    ( ct_letter, ''(221), ''(253) ),`09`7B 253 `7D
  863. X`09    ( ct_none, ''(254), ''(254) ),`09`7B 254 `7D
  864. X`09    ( ct_special, ''(255), ''(255) ) );`09`7B 255 `7D
  865. X
  866. X`09database_poltime: `5Bglobal`5D string := '0 ::1';
  867. X`09max_mdl_buffer: `5Bglobal`5D integer := 20;
  868. X
  869. X/
  870. $ CALL UNPACK GLOBAL.DIF;1 845461331
  871. $ create 'f'
  872. X/
  873. $ CALL UNPACK GREAT_HALL.DIF;1 47
  874. $ create 'f'
  875. X-   31
  876. X    14.7.1992 `7C`09`09`7C open_terminal, close_terminal, terminal argument
  877. V to
  878. X`09      `7C`09`09`7C to grab_line
  879. X    15.7.1992 `7C         `7C ESCape sequence length check
  880. X-   52
  881. X`09terminal_t = $uword;
  882. X-  183,  183
  883. X`09syscall($bintim (database_poltime,time)); `7B yksi sekuntti laukeamiseen
  884. V `7D
  885. X-  225,  225
  886. Xprocedure putchars(s: mega_string; channel: integer := -1);
  887. X-  233,  234
  888. X`09if channel >= 0 then`20
  889. X`09    syscall($qiow(,channel,
  890. X-  254,  254
  891. X    if need_reprint then putchars(''(13),inp_chan);
  892. X-  261,  261
  893. X`09`09    procedure eof_handler;
  894. X`09`09    channel: integer := -1);
  895. X-  336
  896. X`09have_deccrt : boolean := false;
  897. X-  341,  346
  898. X`09    if have_deccrt Then putchars(chr(13)+chr(27)+'`5BK',channel)
  899. X`09    else begin`20
  900. X`09`09putchars(chr(13),channel);`09`09`09
  901. X`09`09for i := 1 to length (prompt) + length(line) do
  902. X`09`09putchars(' ',channel);`09`09`09
  903. X`09`09putchars(chr(13),channel);`09`09`09
  904. X-  351,  359
  905. X    var tmp : terminal_t;
  906. Xbegin
  907. X
  908. X
  909. X   if channel < 0 then channel := inp_chan;
  910. X   tmp := channel;
  911. X
  912. X   syscall(GetDvi(DVI$_TRM,tmp,,result));
  913. X   if not odd(result) then begin
  914. X`09if channel <> inp_chan then begin
  915. X`09    writeln('%Error on grab_line. Notify Monster manager.');
  916. X`09    writeln('%Given terminal argument don''t point to terminal.');
  917. X`09end else writeln('SYS$INPUT must point to terminal !!!');
  918. X`09HALT;
  919. X   end;
  920. X   syscall(GetDvi(DVI$_TT_DECCRT,tmp,,result));
  921. X   have_deccrt := odd(result);
  922. X
  923. X   putchars(''(13)''(10),channel);
  924. X-  404,  404
  925. X`09`09chan := channel,
  926. X-  425,  425
  927. X`09syscall($cancel(channel));
  928. X-  429,  429
  929. X`09`09channel);
  930. X-  444,  447
  931. X  line := '';
  932. X  for i := 1 to iosb.offtrm do line := line + area`5Bi`5D;
  933. X  if iosb.trmlen > max_esc then begin
  934. X`09putchars(''(10)''(13),channel);
  935. X`09writeln('Too long ESCape sequence.');
  936. X`09start := line;
  937. X`09goto again;
  938. X  end;
  939. X
  940. X  terminator := '';
  941. X  for i := 1 to iosb.trmlen do terminator := terminator + area`5Biosb.offtrm
  942. V+i`5D;
  943. X-  454,  454
  944. X`09    putchars(''(10)''(13),channel);
  945. X-  460,  460
  946. X`09    putchars(''(10)''(13),channel);
  947. X-  479,  479
  948. X`09`09putchars(''(13)''(0),channel);
  949. X-  489,  489
  950. X`09`09putchars(''(13)''(0),channel);
  951. X-  503,  503
  952. X else putchars(''(13)''(0),channel);`09`09`09
  953. X-  515,  515
  954. X-  532,  532
  955. X`5Bglobal`5D
  956. Xfunction open_terminal(name: string; var trm: terminal_t): boolean;
  957. Xvar result: unsigned;
  958. Xbegin
  959. X`09result := $assign(name,trm);
  960. X`09if not odd (result) then open_terminal := false
  961. X`09else begin
  962. X`09    syscall(GetDvi(DVI$_TRM,trm,,result));
  963. X`09    if not odd (result) then begin
  964. X`09`09syscall($dassgn(trm));
  965. X`09`09open_terminal := false;
  966. X`09    end else open_terminal := true;
  967. X`09end;
  968. Xend; `7B open_terminal `7D
  969. X
  970. X`5Bglobal`5D
  971. Xprocedure close_terminal(trm: terminal_t);
  972. Xbegin
  973. X    syscall($dassgn(trm));
  974. Xend; `7B close_terminal `7D
  975. X/
  976. $ CALL UNPACK GUTS.DIF;1 1243892649
  977. $ create 'f'
  978. X
  979. X! default chartable is Multinational
  980. XCHARTABLE:  ! This modifies default chartable - one character per line
  981. XEND OF CHARTABLE
  982. X
  983. X! Time of between database polling in VMS delta-time format
  984. Xdatabase_poltime: 0 ::1          !  One second
  985. X
  986. X! Message what is written when playtime: -entry closes Monster
  987. XCLOSED MESSAGE:
  988. X%INSERT message
  989. XWelcome to the game Monster!
  990. X
  991. XBut what now?
  992. X
  993. XGoodgulf the Grey appears in a puff of orange smoke!
  994. XHe is very angry...
  995. X
  996. X"What are you doing here? The Dungeon is now closed!"
  997. X
  998. XHe waves his Iron Staff and yells "Begone!"
  999. X
  1000. XYou disappear in a burst of multicolored light...
  1001. X
  1002. XOn wall you see announcement:
  1003. X
  1004. X**********************************************************************
  1005. X*                                                                    *
  1006. X*                    Dungeon is closed on weekdays                   *
  1007. X*                         between 09.00-17.00                        *
  1008. X*                                                                    *
  1009. X**********************************************************************
  1010. X%ENDINSERT
  1011. XEND OF MESSAGE
  1012. X
  1013. Xmdl_buffers: 20
  1014. Xallow_dcl_access: true
  1015. $ CALL UNPACK INIT.APPEND;5 1079839767
  1016. $ create 'f'
  1017. X-   82
  1018. X
  1019. X
  1020. X! default chartable is Multinational
  1021. XCHARTABLE:  ! This modifies default chartable - one character per line
  1022. XEND OF CHARTABLE
  1023. X
  1024. X! Time of between database polling in VMS delta-time format
  1025. Xdatabase_poltime: 0 ::1          !  One second
  1026. X
  1027. X! Message what is written when playtime: -entry closes Monster
  1028. XCLOSED MESSAGE:
  1029. XWelcome to the game Monster!
  1030. X
  1031. XBut what now?
  1032. X
  1033. XGoodgulf the Grey appears in a puff of orange smoke!
  1034. XHe is very angry...
  1035. X
  1036. X"What are you doing here? The Dungeon is now closed!"
  1037. X
  1038. XHe waves his Iron Staff and yells "Begone!"
  1039. X
  1040. XYou disappear in a burst of multicolored light...
  1041. X
  1042. XOn wall you see announcement:
  1043. X
  1044. X**********************************************************************
  1045. X*                                                                    *
  1046. X*                    Dungeon is closed on weekdays                   *
  1047. X*                         between 09.00-17.00                        *
  1048. X*                                                                    *
  1049. X**********************************************************************
  1050. X
  1051. XEND OF MESSAGE
  1052. X
  1053. Xmdl_buffers: 20
  1054. Xallow_dcl_access: true
  1055. X/
  1056. $ CALL UNPACK INIT_PROTO.DIF;1 1628001689
  1057. $ create 'f'
  1058. X-   33
  1059. X   14.7.1992  `7C         `7C load k`E4ytt`E4`E4 nyt grab_line:`E4, jos luku
  1060. V tapahtuu
  1061. X              `7C         `7C p`E4`E4tteelt`E4
  1062. X   15.7.1992  `7C         `7C boolean and, boolean or
  1063. X   16.7.1992  `7C         `7C get global flag palauttaa nyt lippun nimen, jo
  1064. Vs tosi
  1065. X              `7C         `7C eik`E4 teksti`E4 "TRUE"
  1066. X   17.7.1992  `7C         `7C or else, and then
  1067. X   20.8.1992  `7C         `7C e_strip now uses chartable
  1068. X   28.8.1992  `7C         `7C max_buffer = 5 > 20
  1069. X   05.9.1992  `7C         `7C Osittainen muttujien esittelyn tarkistus
  1070. X   13.9.1992  `7C         `7C name_string dynaaminen, pool on nyt osoitin`20
  1071. X              `7C         `7C (dynaamiseen) taulukkoon, max_mdl_buffer kerto
  1072. Vo koon
  1073. X-   85,   85
  1074. X<<loput parametrit kaksoispistell`E4 erotettuina>,
  1075. X-  111,  112
  1076. Xconst`20
  1077. X      atom_length = shortlen;  `20
  1078. X-  117,  117
  1079. X      max_functions = 81;  `7B esimerkiksi null,get, ...   `7D
  1080. X-  128,  128
  1081. X
  1082. X-  132
  1083. X
  1084. X        external_labels = 'enter, leave, say, attack, look, look you,' +
  1085. X`09`09`09  'command, start, escaped, poof in, poof out, ' +
  1086. X`09`09`09  'say, look_detail, look around, wrong dir, ' +
  1087. X`09`09`09  'get fail, get succeed, drop succeed, drop you, ' +
  1088. X`09`09`09  'use succeed, look you, summon, learn';
  1089. X`09external_vars = 'player name, monster name, target, speech, command, ' +
  1090. X`09`09`09'detail, direction, book name';
  1091. X
  1092. X`09define_var_headers = `5B 2, 4 `5D ;
  1093. X-  145
  1094. X      name_string(maxlen: integer) = `5Bhidden`5D
  1095. X`09array `5B1 .. maxlen`5D of char;
  1096. X-  150,  150
  1097. X                long_name: `5Ename_string;
  1098. X-  164
  1099. X
  1100. X    pool_array(n: integer) = array `5B 1 .. n`5D of buffer;
  1101. X-  172,  173
  1102. X`09pool : `5Epool_array;
  1103. X`09current_buffer : integer;
  1104. X-  279,  281
  1105. X`09('boolean and',`091,  max_param),`09    `7B 78 `7D
  1106. X`09('boolean or',`091,  max_param),`09    `7B 79 `7D
  1107. X`09('or else',2, max_param),`09    `7B 80 `7D
  1108. X`09('and then',2, max_param)`09    `7B 81 `7D
  1109. X-  449,  449
  1110. X    with pool`5E`5Bbuffer`5D do begin
  1111. X-  464,  465
  1112. Xfunction ns(name: array `5B low .. hi: integer`5D of char): string_t;
  1113. Xvar i: integer;
  1114. X    s: string_t;
  1115. Xbegin
  1116. X    s := '';
  1117. X    for i := low to hi do s := s + name`5Bi`5D;
  1118. X    ns := s;
  1119. Xend; `7B ns `7D
  1120. X
  1121. Xprocedure as(var name: array `5B low .. hi: integer`5D of char;
  1122. X`09     s: string_t);
  1123. Xvar i: integer;
  1124. Xbegin
  1125. X    if length(s) <> hi - low +1 then begin
  1126. X`09writeln('%Illegal assigment in procedure as.');
  1127. X`09writeln('% Notify Monster Manager.');
  1128. X`09halt;
  1129. X    end;
  1130. X    for i := 1 to length(s) do name`5Blow + i -1`5D := s`5Bi`5D;
  1131. Xend; `7B as `7D
  1132. X
  1133. Xprocedure parse (function reader (var line: string_t): boolean;
  1134. X`09`09var result: text);      `20
  1135. X-  480
  1136. X    eof_flag: boolean := false;
  1137. X-  484,  484
  1138. X`09if eof_flag then begin
  1139. X`09    write_debug('%read_line: eof_flag = true already');
  1140. X-  489,  490
  1141. X`09end else if not reader(line) then begin
  1142. X`09    write_debug('%read_line: EOF');
  1143. X`09    line := '';
  1144. X`09    linep := 0;
  1145. X`09    linecount := linecount +1;
  1146. X`09    atom_line_p := -1;
  1147. X`09    eof_flag := true;
  1148. X`09end else begin
  1149. X-  500,  500
  1150. X`09else LINE_EOF := eof_flag;
  1151. X-  535,  548
  1152. X    function locate_label(name: string_t): integer;
  1153. X    var loc, j: integer;
  1154. X    begin
  1155. X`09loc := 0;
  1156. X`09for j := 1 to label_count do
  1157. X`09    if EQ(name,labels`5Bj`5D.name) then loc := j;
  1158. X`09locate_label := loc;
  1159. X    end; `7B locate_label `7D
  1160. X
  1161. X    procedure replace_GOSUB;
  1162. X    var i,loc: integer;
  1163. X    begin
  1164. X`09for i := 1 to atom_count do
  1165. X`09    with pool`5E`5Bcurrent_buffer`5D.table`5Bi`5D do
  1166. X`09`09if nametype = n_header then if name = GOSUB_ID then begin
  1167. X`09`09    loc := locate_label(ns(long_name`5E));
  1168. X`09`09    if loc = 0 then begin
  1169. X`09`09`09LINE_error;
  1170. X`09`09`09writeln('Error: GOSUB ',ns(long_name`5E));
  1171. X`09`09`09writeln('       without LABEL ',ns(long_name`5E));
  1172. X-  559,  559
  1173. X    procedure do_list(list: string_t; procedure doit(atom: atom_t));
  1174. X    var index: integer;
  1175. X`09atom: atom_t;
  1176. X    begin
  1177. X`09index := 1;
  1178. X`09while index <= length(list) do
  1179. X`09begin
  1180. X`09    atom := clean_spaces(cut_atom(list,index,','));
  1181. X`09    doit(atom);
  1182. X`09end;
  1183. X    end; `7B do_list `7D
  1184. X
  1185. X    function in_list(list: string_t; atom: atom_t): boolean;
  1186. X    var flag: boolean;
  1187. X`09procedure check_one(a: atom_t);
  1188. X`09begin
  1189. X`09    if a = atom then flag := true;
  1190. X`09end; `7B check_one `7D
  1191. X    begin
  1192. X`09flag := false;
  1193. X`09do_list(list,check_one);
  1194. X`09in_list := flag;
  1195. X    end; `7B in_list `7D
  1196. X`09
  1197. X    procedure walk_tree(pos: integer;
  1198. X`09`09`09current_label: string;
  1199. X`09`09`09visited_labels: string_t;
  1200. X`09`09`09defined_vars: string_t);
  1201. X    label OUT;
  1202. X`09procedure add_list(var list: string_t; atom: atom_t);
  1203. X`09begin
  1204. X`09    if length(list) + length(atom) > string_length - 2 then begin
  1205. X`09`09writeln('% List overflow in walk tree !!');
  1206. X`09`09writeln('% Aborting checking.');
  1207. X`09`09goto OUT;
  1208. X`09    end;
  1209. X`09    if list > '' then list := list + ', ';
  1210. X`09    list := list + atom;
  1211. X`09end; `7B add_list `7D
  1212. X
  1213. X`09function pvar(i :integer): atom_t;
  1214. X`09var A: atom_t;
  1215. X`09begin
  1216. X`09    writev(A,'p',i:1);
  1217. X`09    pvar := A;
  1218. +-+-+-+-+-+-+-+-  END  OF PART 1 +-+-+-+-+-+-+-+-
  1219. -- 
  1220. - K E H                                      /  El{m{ on monimutkaista
  1221.   Kari.Hurtta@Helsinki.FI
  1222.