home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / games / volume16 / nethack31 / patch1aa < prev    next >
Text File  |  1993-03-05  |  57KB  |  1,469 lines

  1. Subject:  v17i068:  nethack31 - display oriented dungeons & dragons (Ver. 3.1), Patch1aa/31
  2. Newsgroups: comp.sources.games
  3. Approved: billr@saab.CNA.TEK.COM
  4.  
  5. Submitted-by: izchak@linc.cis.upenn.edu (Izchak Miller)
  6. Posting-number: Volume 17, Issue 68
  7. Archive-name: nethack31/Patch1aa
  8. Patch-To: nethack31: Volume 16, Issue 1-116
  9. Environment: Amiga, Atari, Mac, MS-DOS, Windows-NT, OS2, Unix, VMS, X11
  10.  
  11.  
  12.  
  13. #! /bin/sh
  14. # This is a shell archive.  Remove anything before this line, then unpack
  15. # it by saving it into a file and typing "sh file".  To overwrite existing
  16. # files, type "sh file -c".  You can also feed this as standard input via
  17. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  18. # will see the following message at the end:
  19. #        "End of archive 27 (of 31)."
  20. # Contents:  sys/mac/NHrsrc.hqx sys/share/lev_yacc.c2
  21. # Wrapped by billr@saab on Fri Mar  5 10:50:49 1993
  22. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  23. if test -f 'sys/mac/NHrsrc.hqx' -a "${1}" != "-c" ; then 
  24.   echo shar: Renaming existing file \"'sys/mac/NHrsrc.hqx'\" to \"'sys/mac/NHrsrc.hqx.orig'\"
  25.   mv -f 'sys/mac/NHrsrc.hqx' 'sys/mac/NHrsrc.hqx.orig'
  26. fi
  27. echo shar: Extracting \"'sys/mac/NHrsrc.hqx'\" \(26482 characters\)
  28. sed "s/^X//" >'sys/mac/NHrsrc.hqx' <<'END_OF_FILE'
  29. X(This file must be converted with BinHex 4.0)
  30. X:$%jPG%KKBfXZFR0bB`"bFh*M8P0&4!%!!!!!!!!!5qNTkJ!!!!!"!!!!4SN!!%@
  31. X*!!!&B!!!!!!0!"!!,3!`S!)!U!!!!!!!&J!i!#F!iBJB8h4[$%jPG%KKBfXZFR0
  32. XbBaN#!!!!FR0bBe*6483"!!##!%!!!(*cFQ058d9%!3!!JJ"!!!!!!!!!!!!!!!!
  33. X!!!!!!"P!TiRee`!!!!!!!%[T!!$)!6!!!3!!!!!!!!!!#lN!!!!!&3!!!!!!jJ&
  34. XF!!%!!!!!!!!!!!Zi!!!!!"8!8!"Z!2S"Z!!"!!!!!!!!!!!(e!!!!!!9!&!!EJ$
  35. Xk!EJ!!3!!!!!!!!!!"p-!!!!!&3"3!'i!qJ'i!!%!!!!!!!!!!!I5!!!!!"8!8!"
  36. XZ!2S"Z!!!!"`"#!!)!8S!m!!!!!!!!!!!!!!(6@9cFf&RC6J+!!!!(!%Z!!3"8J(
  37. X+!!!!!!!!!!!!!!C6G'&dGA0V1!S!!!!@!(`!fJ$i!BS!!!!!!3!!!!!!!%di#J!
  38. X!!"S![J!'!9!"-J!!!!!"!!!!!!!%5@jQEb!i#J!!!#)!+!!S!)`!SJ!!!!!"!!!
  39. X!!!!06R9XE#"AD@jNEhFJ)6J+!!!!2!j1G@eLCA)JEfBJDf9jFdp$6P3&+LSU+LT
  40. X-8e4$"dYPH@0[C'9)3PP8"%0SBA*$5%&5"5SU+LSU6&0843!!!#!!+!!S!8S"lJ!
  41. X!!!!!!!!!!!!,4(9ZCf9[EL"0BA!i#J!!!#!!+!!S!+`"c!!!!!!"!!!!!!!,4'P
  42. XKCfj[Fh4TBh-i#J!!!!-!!3!!!!!@!!%66@&M)%jPG%KKBfXJ5'9XF-N[2`!!!!i
  43. X!!JNMGQ9bFfP[EJd"2`!!!!i!"J&6!!*2B`*2F`!"83!!!#J!J!!!!!!!!!!!rrr
  44. Xrr`%8%N&LEh9d)%eKBb"1CA4)B@0Vb3!!!!!!!!!!A3#"!!!!!!!!!!$rrrrE"%C
  45. XTE'8*8f&fC5"(B@eP!&-!!!%Y!!!!!""%DA0`E'&j)%p`G'P[ER2*!%3!!!a6CA3
  46. XJ6h"dD@pZFmN!6`!!!5d!!!!!"&&eDA3!83!!!!!!!%J!JJ!!!!!!!!!!rrrrq`4
  47. X&C'Pd"&9ZC'm!@J!!!5d!!!!!!d0eG!"B!!!%3fp`H3"$!!!&8'&cG'8!9J!!"80
  48. XXC@&b!!!!!!!!!!#!!!!!!!!!!!!!!!$rm!!!!!$3$r%Im!!!!0d!m4(`!!!!$G$
  49. Xa%4m!!!!!hI%4(`!!$r$phrmI!!!2rrrG!2!!!!m4%Ih3!!!!$a%4m0d!!!!2%4(
  50. X`$G!!!!$r%I!!h3!!!!rr!!!0d!!!!!!!!!$G!!!!!!!!!!h3!!!!!!!!!0!!!!#
  51. X!$rrrrrrr!!!2c-c-c-r`!!r-c-c-cmm!$mc-crr2rr!2crc2%Ic-m!r2rmm4(mc
  52. X`$mcrra%Ic2!2c-rrrrr-m!rrrrrmc-c`$r%4rrr-c2!2m4(mrrc-m!r2%Ic2rmc
  53. X`$mcrr-crr2!2c-c-c-rrm!r-c-c-c2r`$rrrrrrrrr!!!!"!!!!$J#I!-q!Em!r
  54. X`*r"r)(q!I-"mB$i`("J!$!!'!!)$J#I!Iq"rm$ri2rKrq2r`rq$ri2r`IhJq2"`
  55. XH!!m!"`!!!%"rm%!B3"4$rP[LAI*2mPIbIi*r`RlLAh*11N!H3!jrrRr`IrKrr(r
  56. XqIrjrrRrqIrjrrRrqIrjrrRrqIrjrrRrq!!!"!!!!!!!!$i!!!$rJ!"!rm!!F(rJ
  57. X!#Kri!!NIr!!%Rr`!!Rrm!!%rr!!!Rr`!--rm!(rQ'!"rmJ!!IrN!!(rmJ!"rmN!
  58. X!Ir%J!$r`N!!!2r")!"ri*!!2q")!!q!*!!!!")!!!!*!!!!")!!!!*!!!!!!5!!
  59. X!!#3!!!!5!!!!#J!!!!3!$i!!!$rJ!""rm!!mIrJ!2Mrm!"mrr!!I[ri!$rrq!!I
  60. XrrJ!$rri!-Irq!(rrrJ$rrr`!rrmB!2rrJ!$rrm!!rrrJ!2rlm!"rqIJ!IrMm!$r
  61. XmIJ!Ir$m!$rJIJ!2J$m!!!!IJ!!!$m!!!!IJ!!!$m!!!!IJ!!!$m!!!!I!!!!$J!
  62. X!!3!Irri!%!!$!"!!!S!3!!*!%!!#)"!!!K!3!q))%!Ilq"'(r!J43r`)%52q#"#
  63. X6rJJ36ri)%#Iq#"!6rJJ6'B`)&rb!#"Iq3!JArb!)&rb3!!JAr%J)%r`N#"2q%JJ
  64. X4rJN)%(`%L"!!!NJ3!!%S%!!!Q"!!!%J3!!!S%!!!'"rrrrJIrri!(rrr!"rrri!
  65. XIrrr!(rrri"rrrr!Irrri(rrrq"rrrrJIrrri(rrrq"rrrrJIrrri(rrrq"rrrrJ
  66. XIrrri(rrrq"rrrrJIrrri(rrrq"rrrrJIrrri(rrrq"rrrrJIrrri(rrrq"rrrrJ
  67. XIrrri(rrrq"rrrrJIrrri(rrrq!!!!J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!rrr
  68. X`!!!!!!!!!!!!!!!!ra%4(r!!!!!!!!!!$`!!!2%4%4%I!!!!!!!!!!rr!!!2%4%
  69. X4%I!!!!!!!!!!rI!!$a%4%4(`!!!!!!!!!2hI!!m4%4%4(`!!!!!!!!!2hI!2%4%
  70. X4%4m!!!!!!!!!!2hIra%4%4%I!!!!!!!!!!!2hI%4%4%4(`!!!!!!!!!!!2hI%4%
  71. X4%4m!!!!!!!$r!!$rhI(rrr%I!!!!!!!2%Irr%IhIm!!2m!!!!!!!$a%4%4%IhI!
  72. X!!!!!!!!!!!m4%4%4%IhI!!!!!!!!!!!2%4%4%4(rhI!!!!!!!!!!$a%4%4%I!2h
  73. XI!!!!!!!!!!m4%4%4(`!2hI!!!!!!!!!!m4%4%4m!!2hI!!!!!!!!!2%4%4%I!!!
  74. X2hI!!!!!!!!!2%4%4%I!!!2hI!!!!!!!!!2m4%4r`!!!2hI!!!!!!!!!!rrr`!!!
  75. X!!2hI!!!!!!!!!!!!!!!!!!!2hI!!!!!!!!!!!!!!!!!!!2hI!!!!!!!!!!!!!!!
  76. X!!!!2hI!!!!!!!!!!!!!!!!!!!2hI!!!!!!!!!!!!!!!!!!!2hI!!!!!!!!!!!!!
  77. X!!!!!!2hI!!!!!!!!!!!!!!!!!!!2hI!!!!!!!!!!!!!!!!!!!2h`!!!!!!!!!!!
  78. X!!!!!!!!2!!!!!J!!$rrrrrrrrrrrrr!!!!!!!!r-c-c-c-c-c-cr!!!!!!!2c-c
  79. X-c-c-c-c-r2!!!!!!$mc-c-c-c-c-c2c2!!!!!!r-c-c-c-c-c-cmc2!!!!!2c-c
  80. X-c-c-c-c-r-c2!!!!$mc-c-c-rrrmc2c-c2!!!!r-c-c-ca%4(rcrrrr`!!!2c-r
  81. Xmc-m4%4(rc-c-m!!!$mc2cmc-m4%4(mc-c2!!!!r-cmcmc2%4%4(mc-c`!!!2c-c
  82. Xmcmca%4%4r-c-m!!!$mc-cmcrm4%4%Ic-c2!!!!r-c-cmca%4%4(mc-c`!!!2c-c
  83. X-cmcarrrrr-c-m!!!$mcrc-rmcrc-rmc-c2!!!!r2rrrr(mcmc-c-c-c`!!!2ca%
  84. X4%4(mcmc-c-c-m!!!$mm4%4%Irmcmc-c-c2!!!!r2%4%4(mcmcmc-c-c`!!!2ca%
  85. X4%4r-cmcmc-c-m!!!$mca%4%Ic-cmcmc-c2!!!!r-m4%4(rc-cmcmc-c`!!!2c-r
  86. Xa%4rmc-cmcmc-m!!!$mc-crrrc-c-cmcmc2!!!!r-c-c-c-c-c-cmcmc`!!!2c-c
  87. X-c-c-c-c-cmcmm!!!$mc-c-c-c-c-c-cmcr!!!!r-c-c-c-c-c-c-cmc`!!!2c-c
  88. X-c-c-c-c-c-cmm!!!$mc-c-c-c-c-c-c-cr!!!!rrrrrrrrrrrrrrrrr`!!!!!!`
  89. X!@J"Z!1i"NJ#"4%3!!!"-!!)!!!!!!(J!aJ#+!4!%!Np,!!!!!!!+!%B!F`%3L"a
  90. X$Eh9XC#"ZEh3JAM)JBQ9MBA9cC5"H-#iJ)&ia!!!!!!!+!"3!+J!dS!)!!!!!!3!
  91. X!!!!!!!!!!$rrrr!J!!!B)!I!'#!2m"JM$rJB)SIi'#*(r"JK*r`B)*rm'#"2r"J
  92. XJ*r`B*M-B'#rj!"J[r)!B,rj!'#rj)"J[q*!!'#Ii5"JRr#3B)r`5'#$i#4JJ!!5
  93. XB)!!#@#!!!6JJ!!#B)!!!@#!!!$Jrrrri(rrrq!!!!!!!!!!!!!!!!$rrrr!rrrr
  94. Xi2rrrq$rrrrJrrrri2rrrq$rrrrJrrrri2rrrq$rrrrJrrrri2rrrq$rrrrJrrrr
  95. Xi2rrrq$rrrrJrrrri2rrrq$rrrrJrrrri2rrrq$rrrrJrrrri2rrrq$rrrrJrrrr
  96. Xi2rrrq$rrrrJIrrri!!!!!!!!!%!!!(rm3iCEaPrQ6qChjRq'ImCqjPjf6Mj!(N!
  97. X1IrirrJ!!IrarrRrqIrjrrRrqIrjrrRrqIrjrrRrqIrjrrMrq!!!#!!!!!!!!!!!
  98. X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2rrrrrrrrrrrrrrrrm!!!$mc-c-c-c
  99. X-c-c-c-c2m!!!r-c-c-c2rrr-c-c-cr!!!2c-c-c-m4%4rmc-c-r`!!$mc2r-c2%
  100. X4%4(mc-c2m!!!r-cpr-c2%4%4r-c-cr!!!2c-rGr-ca%4%4r-c-r`!!$mc-rGr-m
  101. X4%4%Ic-c2m!!!r-c-rGra%4%4(mc-cr!!!2c-c-rGm4%4%4r-c-r`!!$mc-c-rGm
  102. X4rr%Ic-c2m!!!r-rmc2rGrmc2r-c-cr!!!2ca(rm4rGr-c-c-c-r`!!$mm4%4%4r
  103. XGr-c-c-c2m!!!r2%4%4%IrGr-c-c-cr!!!2ca%4%4r-rGr-c-c-r`!!$mm4%4%Ic
  104. X-rGr-c-c2m!!!r-m4%4(mc-rGr-c-cr!!!2c2%4%4(mc-rGr-c-r`!!$mc2m4%4r
  105. X-c-rGr-c2m!!!r-c-rrrmc-c-rGr-cr!!!2c-c-c-c-c-c-rGr-r`!!$mc-c-c-c
  106. X-c-c-rGr2m!!!r-c-c-c-c-c-c-rGrr!!!2c-c-c-c-c-c-c-rGr`!!$mc-c-c-c
  107. X-c-c-c-rIm!!!r-c-c-c-c-c-c-c-rr!!!2rrrrrrrrrrrrrrrrr`!!!2rrrrrrr
  108. Xrrrrrrrrrm!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!f!)S!L3)E!)"%4!!!!#)!!3!
  109. X!!!!!0!&*!%J"J`3#6dX!!!!!!!B!1!"'!6D)!Pi`!!!!'!"D!&i!k!'R!!8!!!!
  110. X!!!!!!!##!!&`#J!!!"J!-J!b!2d"B3!&!!!!!!!!!!!!J`!YF!S!!!!B!%J!FJ$
  111. Xf!Am!"3%!!3!!!!!!!)3!*h!+!!!!'!"#!&`!``(A!!8!!!!!!!!!!!#(!!"`#J!
  112. X!!"J!3J"F!--"e`!&!!!!!!!!!!!!KJ!!F!S!!!!B!%)!A!$$!GF!"3!!!!!!!!!
  113. X!!)8!!(!+!!!!8J!%!!!!!!"M!5d!G`&R"!0CCA-!!!!!!!"M!1F!G`%K"!*1E`!
  114. X!!!!!#`"-!&3"CSJ#AM!!!!!!!!`!&!!X!$5J!J!"!!!!!!"G!5J!I3&)J!!!!!"
  115. XN!!8!!!!!!'-",3"h!@F%!ePPF`!!!!!!!'-!j`"h!5%%!Nj[!!!!!!"M!+%!G`$
  116. XE"!44G@Pd!!!!!!!,!%`!9!&QL!*H-!!!!!!!$!!8!#`!0+!#!!%!!!!!!&d"+!"
  117. Xp!8L!!!!!!(B!"J!!!!!!B`%Y!(F"C`3$@@9c!!!!!!!!B`$R!(F")33#6Qm!!!!
  118. X!!'-!S3"h!0X%!d&XE!!!!!!!!'-!@`"h!*8%"&&eDA3!!!!!!!X!6!"8!@D)!Pi
  119. X`!!!!!!!-!"3!,!!dS!)!!3!!!!!!A`%T!(m"5B!!!!!!'!"#!&`!``(A!!8!!!!
  120. X!!!!!!!#)!!"`#J!!!)3!"`!!!!!!B`%Y!(F"C`3$@@9c!!!!!!!!B`$R!(F")33
  121. X#6Qm!!!!!!'-!S3"h!0Z3!!!!!!!!!'-!@`"h!*8%!d&XE(3!!!!!!'-!&3"h!%m
  122. X%"&&eDA3!!!!!!!X!6!"8!@D)!Pi`!!!!!!!-!"3!,!!dS!)!!3!!!!!!AJ%S!(i
  123. X"5)!!!!!!BJ!&!!!!!!"U!2N!IJ%c"!*25`!!!!!!DJ#P!(i!h`3'3f&ZBf9X!!!
  124. X!!!!+!&8!1J%lL!*H-!!!!!!!4!"A!&3"0K!!!!!!!!!+!"`!+J!mS!)!!3!!!!!
  125. X!C!$d!)3"&)!!!!!"H!!6!!!!!!#V!1-![`%G"!*25`!!!!!!U`#D!,m!e!3'3f&
  126. XZBf9X!!!!!!!-!"J!(J#3!!B'3@4UGA0d!!!!!!!H!"J!-!#3!!B%3fKKG!!!!!!
  127. X!-!!B!%)!N!!'!d4TF!!!!!!!!%)!'!"8!*!!"J9'Eh*MC3!!!!!!!&3!'!"Q!*!
  128. X!"J4+G@e`!!!!!!"Q!"J!H!#3!!B%6'p[G!!!!!!!H!!B!)S!N!!'"de[ER0dCA)
  129. X!!!!!!!#+!"J!R!#3!!B%6Q&YC3!!!!!!R!!B!+i!N!!'"8pQCQ9b!!!!!!!!$!#
  130. XD!"i"%JB%8(*KH3!!!!!!(J#D!$!"%JB$8R9L!!!!!!!!-!#D!%)"%JB$8fPd!!!
  131. X!!!!!3J#D!&3"%JB%9(9bEJ!!!!!!9!#D!'B"%JB'9@jdFQ&`!!!!!!"Q!*S!H!%
  132. X5"JG@CA*cD@pZ!!!!!!!!H!#D!)S"%JB'9fPZC'ph!!!!!!#+!*S!R!%5"J4ADA"
  133. XP!!!!!!#Q!0m!aJ$rJ!!!!!%b!!i!!!!!!)d!U!#K!1)%!Np,!!!!!!#0!$%!S3"
  134. XV"!44G@Pd!!!!!!!1!"8!)!"r"Ja"FQ0SC@pXEfGTFh3!!!!!!#!!&3!b!(m'#8*
  135. XKFQ*KFQPKEJ!!!!!!!$)!&3"%!(m'"d0KGQ9YB@i!!!!!!!"%!"8!9J"r"J0&E'B
  136. X!!!!!!!"@!"8!D!"r"JC)C@&XCA)!!!!!!'J!&3"k!(m'"NYZD@GSG!!!!!!!$J#
  137. X0!#!!p`B'8(*TCA0d!!!!!!!J!)d!-J$h"J95EfGeC3!!!!!!!$)!M3"%!2F'"e0
  138. XKEA9bB@N!!!!!!!"%!)d!9J$h"JG8Eh9bDA0d!!!!!!!!9J#0!'J!p`B)9Q&XDhP
  139. XbD@8!!!!!!'J!M3"k!2F'"PGTHQ&bC!!!!!!!L!#N!+J!a)!!!!!!'!#m!*S"'`&
  140. Xc!!8!!!!!!!!!!!#*!!"S#J!!!'`!"3!!!!!!3J"0!&B!K`3#6dX!!!!!!%)!#`"
  141. X@!%8%"N0KEQ0PE!!!!!!!"`!d!$F!e)J#AM!!!!!!!%3!Q!"8!-`3#89NDA3J9'9
  142. XiG!!!!!!!!!J!#J!S!#UJ!J!"!!!!!!!p!%N!A3"TJ!!!!!#!!!!!!!!!!!!2rrr
  143. Xrrrrr!!r-c2rmc-r`$mrmm4r-cr!2crra%Ic2m!r-rr%4r-r`$rrrrrrmcr!2m4(
  144. Xrr-c2m!m4%Irrc-r`$r%4r2rmcr!2ca(mcrr2m!r-rrc-rrr`$mc-c-c2rr!2c-c
  145. X-c-crm!rrrrrrrrr`!2rrrrrrrr!!!!Q)N!!!!!!!rJ!'!!$rp`!'!!X$Z`!*!!)
  146. X!!!!r!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  147. X!!!!!!!!!f!!!!!!!!"4"!!!!!!!T3!!!-!!!'J!!!KK!"@YBL8!(i$P%))"!"*A
  148. X!F"`"`K3!&3!8))r!rr!"q!!!!(1!)!!!!!!!)!!!$Q!"!"!!!!!!!!!!!!!!!!!
  149. X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(!!8)J#'!3"!S#L!!3
  150. X##)!!!'!!35)6E!!!!LL!!!(iL8!&S#P%))"!"*9!8"3"3K3!&3!8))r!rr!0#!!
  151. X!!#4!8!,c`!!%)!-!#C!!"Y8jl%`J!!A,R#qllR!!$R1mlhrZM`aK',[1mlmBaM(
  152. Xr'J)%!"!B)6$!!!!!!J!!!!#TV[N8S53+8+eFli(U844&1L#8I%*%*D,X3!**)!9
  153. XV@)P!"D!T4##!3!593&!8!8)8!"8!&##2`2r`%`!q!$CdA%!&r#!5'L!%J!NJp0r
  154. X@XT+T!!BmBQK!-BJJNBaM'-)4LJbK[-BaM%NBa9%0$3%%!"!J)""!!!!!!J!!!!#
  155. XUdIJ!!"J!!!!M'!+!!!!!4L5#SN!!!$-b!!+U!!!"q)P!"D!T4##!3!593&!8!8)
  156. X8!"8!&##2`2r`)`!5!!QXBL!pr$q4+L3-Z$P!PB95e#&a!!TS3Upi-BeI3HaM#-)
  157. X3LJdK@XBaM!NBa*%8L!"rR2Gcr6*pChRfImBeM(kS%&1Hplh1Fj*M'$U1Fk-BaLl
  158. XRiZI1MDXb3!&9B!9V@2P"rErTI##!3!6eIprhrhq9q"Ai&IL2`2rhC3I)r)L[iZh
  159. X,r#"mb#"cI#RqPiqj5#'[ciUSM5$%6SL!)Urp#2[6qJiK'FI4miNBa)SNL!#-BaL
  160. XNBc4VQ-BjJNBe9%8%%&4M'-BaM&*rreI4M'-BaM@"2%M4MQEXMriCDC!!!Iq2IM'
  161. XaMmIrrrrrPc---``JIJIr*riRrrrrq+8#K45)V'-Dbr`rN5JrL(a!$T!!K4@e)5%
  162. X!%bN$m-54H&p%p'-)`K'+M5%BaK')54M8K%4)!)aK(k4M2'XBaM"b4M8N5+J3Gq-
  163. XBaKrrdQ-BIT'-BaM'0)IN50'-BJ%)"#(b6@YBq8[p[IJm3!*!"2AhrhIrIi(j3Id
  164. X9q%rrr!LM!SN8L(4M(G2m)")B)("r3!k3!!"@XK)"!")U)LM%N3JJJ)4M'-)4LSb
  165. XK'-B4M%N9E85%5!#FB4JNBc*V'-B`#Ne99&#S%53R1Fi3K"*M'&+4M'FiaM@*,NR
  166. X4R'2r'!4!FNJ"q)P+*D8!!%!#3!58&!&8!8!!)8!P&#"2rr`)S`+6&)JN94"6r$q
  167. X!##5!1)!!N!#!1Nd-!""Kcp`R1)je!!4dI1pq$SpdIaLk$SZ)iNBNrMMmEjlhSq-
  168. XaDaGjm2'dLS[qU!iMfYDelh[5BarHlR1DelR1m54'cQaL!1!!F'Q9DeL*5L@P!!"
  169. X!!N!%P"3"9!&!!#&!*43J6rrm"fd#[ZG)FlEJ2I`JIrNJ!!#!!2!!%!!!!"!J!!!
  170. X!!!!"!!!!!!!!!!!!!!!!!3!!!!!!!#!!!!!!!%!J!!"!)!!!!!"!F!*`!!!!J!!
  171. X!!!!!!!!!!)!%!!C!!!!!!!!!!!!!!IL*5L@P!!"!!N!%P"3"9!&!!#&!*43J6rr
  172. Xm!#!!!!3!!!!!)IrJ!!NJ!!!!!!!!!!!!!#!!!!!!!!!#!!!!!!!!!!!!!!!!!!!
  173. X!!!!!!!!!!!!!!i$!!!"!)!!!!!1!!!3!!!!"!!!!!!!!!!!!"`!!!!'!!!!!!!!
  174. X!!!!&DeL*5LIR!!"!!N!%P"`"h!(!!#&!*43J6rrm!!!!!!3!!!!!3!!!!!M!!!!
  175. X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  176. X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!3!#3!1!"-!'!!D!"d!)!!P!#S!,!!
  177. Xa!$)!0J!l!$d!3J"(!%`!83"@!&X!B!"P!'B!D!"V!(!!F`"i!(d!JJ#(!)`!N3#
  178. X@!*X!S!#P!+J!V3#b!,F![!$"!-B!b`$3!08!fJ$I!13!k3$Z!2-!q!$p!2m"!`%
  179. X&!3J"$J%3!48"'J%I!53"+3%Y!6)"0`%i!6X"3!&#!8F"6!&4!9B"@`&J!@8"D3&
  180. XZ!A-"H!&p!B)"K`'+!BX"MJ'6!C-"Q!'G!D)"T`'X!E%"YJ'l!F!"a3(+!Fd"d!(
  181. X5!GF"h!(K!HB"k`(`!I8"qJ(r!J3##3)1!K-#'!)G!L)#*`)X!M%#-`)i!Md#3J*
  182. X(!NX#6`*8!PN#AJ*N!QS#D`*`!R8#HJ*r!S3#K3+*!Sd#NJ+A!TX#S!+M!UJ#V3+
  183. Xb!VB#ZJ+p!X-#b3,-!Y)#f!,E!Ym#i`,R!Zd#m`,h![d$!`-*!`m$&3-E!am$)J-
  184. XP!bN$,`-e!cN$2!0#!dJ$5`01!e3$@J0I!f8$DJ0[!h8$HJ1!!i8$LJ12!j3$Q31
  185. XI!k8$U`1a!lB$Z31m!lm$``2)!md$d32@!pF$h!2J!q3$j`2Y!!B!"J!'!!B!"J!
  186. X'!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J!
  187. X'!!B!"JB'!JB""J!'!!B!"J!'!JB""J)'!!B!"J%'!!B#"J%'!!B#"J!'!!B!"J!
  188. X'!!B!"J!'!!B#"J%'!3B!"J%'!!B!"J!'!!B!"J!'!!B!"J!'!!B""J!'!!B!"J!
  189. X'!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J!'!!B#"J%'!JB""J!'!3B!"J!'!!B!"J!
  190. X'!3B!"J!'!JB!"J!'!3B!"J!'!!B!"J!'!!B!"J%'!!B!"J!'!!B!"J!'!JB#"J%
  191. X'!!B!!!!'!!B!"J!'!!B!"J!'!!B!"J!'!!B""J%'!3B!"J!'!!B!"J!'!!B!"J!
  192. X'!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J)'!!B!"J!'!!B""J%'!!B!"J!'!!B!"J-
  193. X'!!B!"J!'!!B!"J-'!!B!"J!'!!B!"J!'!JB!"J!'!!B!"J!'!`B!"J!'!`B!"J!
  194. X'!`B#"J)'!JB!"J!'!JB!"J!'!!B!"J!'!!B#"J-'!`B#"J!'!!B!"J-'!!B!"J!
  195. X'!`B!"J!'!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J!'!!B!"J%'!3B$"J!
  196. X'!!B!"J%'!!B#"J!'!!B!"J%'!!Err`!!#pk3!!!!!!$r!!F!!2rp!!F!$`6P!!`
  197. X!!`!!!%)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  198. X!!!!!!!!!!!!!!!!!!!!!!!!i!!!!!!!!!!!!!!!!"S!!!!!!!&@V9L*3!IJ183J
  199. X3!J!)LR!(!(!"`38!!+3!#JJ3rJ2rq!!!!!!!!!!!!!!!!!!J!!!!!!!!!!!!!!!
  200. X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  201. X!!!!!!!9%3!!!!!!+8!!!$!!!#`!!!##!!!!"rL*3!@J+83J3!J!)LP!&!&!"338
  202. X!!+3!#JJ3rJ2rq!!!!!!!!!!!!!2!!!!J!!!+B!!!%!!-!!!!!!!!!!!!!!!!!!!
  203. X!!!!!!!!!!!!!!!!!!("`!!!!!!!!!!!!!!!!!!!!!"`!!!!!"J!!!!"%J!!!!!!
  204. X!!!!!%!!!!!!!!##!!&@V9L*3!@J+83J3!J!)LP!&!&!"338!!+3!#JJ3rJ2rq!!
  205. X!!!!!1!!B!23J!!!J!!!0N!!!e6NX8L!!!ZA1&mhh1!!"`$[1prlSm-B4Llc[1r'
  206. X-Bar)%J#"!!3'#%`!!!!!!!!!!!!UDi!L!)N"!)#R1q"l!))J$SJ0(a")K0Lpa!!
  207. XLLJ!!!IiL8!&S#P%)%!)!#)T3"3"3!8%&!!#N!!S)%2i$rrJ1q$i!!"(1)!(m)!!
  208. XJ)!-!15"phpDb8UJ!!aia0"!Ba!JL)%BaM#%BS-SEM'-Ba*'-Ba$)&3""!!3)#%`
  209. X`!!!!!)!!!!!UY&4&+%N#P%YBaJ#NP%848BJ3U*!!N3PSaL3!**)!9DY@)P!"D!T
  210. X4#"!#!!L+8!8!8!&""3!!T!!+#"$q!rri%8JL!"Z5-5!&r#!%6#!%J#P24095dQ&
  211. Xa!!88)93J'-33%#p'-B`K#+$5&FaM'-#4M'-3a"L!!3!%#!J%%!!!!!#!!!!!+J4
  212. X!!!!'!!!!#-B!S!!!!"'*%IL3!!!!$-BJ!!JJ!!!"rL*3!@J+83J3!J!)LP!&!&!
  213. X"338!!+3!#JJ3rJ2rqh&!%!!N1M%3"I`r)T)N")!Trd5&-G3KF3!&0#DA[#G'TmK
  214. X3ap#-)3LJiK'XBaM!NBa9%833!"rR2Gcr6*pjhRfGdBeM(kS%)ZHplh1Fj*M'$U1
  215. XFk-BaLj!!5,RcSfV'*!!@5PT9UeBq8(p[qPm)%!)!#2TIrIrIrhrP2i#Rq!Tr%2i
  216. X$rrb54mMm4%BaH"hm)#&5)%Xi)!p%MjL))Dr!#94"q'*)aX!%P[i`MldrS-)4R(d
  217. XI1*'-5+*#%!!M'-BT'-dDaM'1BT'094&*"#-BaM'-Ba5BapAmBaM'-Bejra)dBjQ
  218. Xpa2rTQU8!!IrMhiaXBr(rrrrrri['-'$'$"!I`(rm4rq)rrrrrrb53S8N4%IaMZ[
  219. Xm2rS`2l"m)!p%K498)5%2LC5"%'*)[#I)PXB`M#%BS1)4M'%BK*'-9%4#%!!M'%I
  220. XT'-iDaM'-A*'054)U"#2iaM'(rr5IrKHNBaM'-Bd35")dBaL!#)""+d,9UeBq8[p
  221. X[IJm3!#)!#2Tqrr[IrhrJ2j3(r3Tr#2rrr!0a3SNN4%BaM@[m)#34)%Kq)!p%!"@
  222. XbS3%!%48"%'*)K"!3&mB`M#%BU0)4M'%BK*'0BNK"%!!M'%B*'-dDaM'-!T'0543
  223. XU"#-)aM'%)35BaK5NBaM'-Bd554)dBaMrm)"#Id+!!IiL8SPT3!!3!#)!#)S#J!T
  224. X3!8!!""3!43S)#2rrr!!43T%N4%BUMZ[m2b$a*,"pS!p%J&Da%J!384B4&'*)LSJ
  225. XJN!"'-B`K'+M+%BaK'-549Z*)34!!*aM'+4M-QXBaM#+6998B+J4R'FjcM'%8Q-B
  226. X9T'-CcM'08NZ5G'FBJ"%!"!UP9DY@)P+*D8!!%!!L!!L+!S!+8!&!!!38!%8+#!M
  227. Xrrr`!%8+M*-3k+SJVr#!(%-!!1'!!4)!k6T)!%'$RlK1F4c+!!)p(c[IJk2G(mBZ
  228. XJk,L1*'*2`*!!Ia[R2FMic&V&hR`FE5+LrkS$QZDeVA1Hj*M(lVZFjVAZFla*%E1
  229. XE')!1!!m+@J!"rL*5L@P!!"!!)J!)LJ+!#P!"3!!%&!"&#JJ)rrrm!"C#[XG#%GY
  230. X`(IrJq"!!!!!J!(d!%!!-!"!J!!!!!!!!J!!!!!!!!!!!!!!!!%!!!!!!!($`!!!
  231. X!!!!3#!!!%!J!!!!!%"`"!!!!!#!!!!!!!!!!!!!J!3!"%!!!!!!!!!!!!&@V9L*
  232. X5L@P!!"!!)J!)LJ+!#P!"3!!%&!"&#JJ)rrrm!"!!!!3!%!!!%IJ!!"!!!!!!!!!
  233. X!!!!!!#!!!!!!!!!"!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!%3#!!!%!J!!!!
  234. X"%!!"!!!!!#!!!!!!!!!!!!!J!!!"i!!!!!!!!!!!!!!"rL*5L@P!!"!!)J!)LJ+
  235. X!#P!"3!!%&!"&#JJ)rrrm!!!!!!3!1!!!%!!!!"!!!!!!!!!!!!!!!!!!!!!!!!!
  236. X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$J-!!!!!!!!!!!i!!#!!!!!%!!!!!
  237. X!!!!!!!(!!!!!!!!!!!!!!!!!!&@V9L*5LIR!!"!!)J!)LJ1!$R!"`!!%&!"&#JJ
  238. X)rrrm!!!!!!!!!!!!!!!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  239. X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!3
  240. X!#3!1!"-!'3!D!"d!)!!P!#S!,!!a!$)!0`!m!$i!3`")!%d!8J"A!&`!B3"Q!'F
  241. X!D3"Y!()!GJ"l!)%!KJ#,!*!!!*8!QJ#I!+3!U3#X!,%!YJ#l!-!!a3$+!-m!e!$
  242. XC!0i!i`$S!1d!mJ$h!2`"!3%%!3N"$!%4!4J"'J%I!53"+3%Z!6-"0`%m!8%"3J&
  243. X&!8S"6!&4!9B"@`&J!@8"DJ&[!A-"H!&p!B)"K`'-!C%"P!'9!CJ"R3'G!D)"T`'
  244. XX!E%"YJ'l!F!"a3(+!Fm"e!(A!GS"h!(K!HB"k`(`!I8"qJ(r!J3##3)1!K-#'!)
  245. XG!L)#*`)X!M%#0J)l!Md#3J*(!N`#83*@!PX#B!*P!QS#F!*f!RF#I!+"!SJ#M`+
  246. X@!TF#Q`+I!U3#U3+Y!V)#Y3+k!Vm#a!,)!X`#d!,A!Yi#iJ,T![!#p!,j![i$!`-
  247. X+!a%$&J-G!b3$+`-b!cN$3!0&!dN$6305!eN$B!0N!fJ$E`0f!hS$IJ1&!iX$N!!
  248. X$P31D!jm$T31U!l%$YJ1l!m!$a32+!mm$e32E!q!$j32S!qX$l`2c!rJ$r33""!B
  249. X%"`3-""!%&!3B""J%(`!(!!F!"`!(!!F!"`!(!!F!"`!(!!F!"`!(!!F!"`!(!!F
  250. X!"`!(!!F!"`!(!!F!"`!(!!F!"`!(!!F!"`!(!!F!"`-(!JF""`%(!3F!"`-(!JF
  251. X#"`%(!3F#"`%(!`F""`%(!JF""`%(!3F""`%(!3F""`%(!`F#"`%(!3F#"`%(!!F
  252. X""`%(!3F""`%(!3F""`%(!JF""`%(!3F""`%(!3F""`%(!3F""`%(!3F""`%(!3F
  253. X""`%(!JF""`)(!3F!"`-(!3F""`%(!3F""`)(!3F""`-(!3F""`)(!3F""`%(!3F
  254. X""`%(!3F""`%(!3F""`%(!3F""`)(!`F#"`%(!!!""`%(!3F""`%(!3F""`%(!3F
  255. X""`%(!JF#"`)(!3F""`%(!3F""`%(!3F""`%(!3F""`%(!3F""`%(!3F""`%(!3F
  256. X$"`%(!3F""`%(!3F""`%(!3F""`%(!3F$"`%(!3F!"`!(!!F$"`!(!!F!"`!(!!F
  257. X!"`)(!!F!"`!(!!F!"`-(!!F!"`-(!!F!"`-(!JF#"`)(!!F!"`)(!!F!"`!(!!F
  258. X!"`!(!JF$"`-(!JF!"`!(!!F$"`!(!!F!"`-(!!F""`%(!3F""`%(!3F""`!(!3F
  259. X""`%(!3F""`%(!3F""`%(!3F#"`)(!`F!"`%(!3F""`%(!`F""`!(!!F""`!"!!I
  260. Xrr`!!!%)!m!#A!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  261. X!!!!!!!!!!!!"!!%!#3!!5iN!$!!!5i`!!!!@!!TCH9YVA(9@D&G[@'a6BP4U9@j
  262. X5,!!!!"B!#PPC@dYF99C)9fpB6&0#9%T96P)X!!!!3Q!!!*J!!!!!!!!!!!!!!!!
  263. X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!3!*!!!i#3!-!!!
  264. Xi$!!!#-+3!!!!!!$[!!S!!2rf!!S!$!0R!!S!!J!!!$3!!!!!!!!!!!!!!!!!!!!
  265. X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!i"0!!!!!!!!!!!!!!!
  266. X!!!!!!!!!!!!!!!!!!!!!!!!IJF!!!!!!!!"`(!F!F!!!!!!!!!!!!!!!!!!!!!!
  267. X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"83*C5J!!
  268. X"J!!!!!!!!!!!!!!!!!!!!!!!!!+J!!!!!"D"3!!!!!#!!&!8"3"3!!!!!!!!!!!
  269. X!"4!!`-!!!)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!('!!!!!!!!!!!!!!!!!!!
  270. X$J!1!!!!*#"C!N3'3!&*%"54!6!!i!!(Ki!!!!!!!!!!!!"D"6J!!!!d!!&!8"3"
  271. X3!!&93!!!$c`!hlRp*58!!,PhaI0pcJ!"MK21jrZM$')1AHGjhiaJaMp#J))!3-)
  272. X6'!!!!!3!!!!&65%GqA43P@Q"#UCYT#UD3URb3d32FK)ALd!qGU!!L$2rP[P4!!#
  273. XJ#3!!9j3&!&!!!TC!)N!I`rM99NP'%K!"4iL0"!Ba""*4%M'84'--SajM'-BNM'$
  274. X')b0!3J""!J%)!!!!"!!!!!9@)5-CM%!!!!!!!!!!!!!!!&,N3G@0c-VF"&#)"#4
  275. X8L5Pfcf#!0!!4")"FpJ@"f!!#USK3$jr$#)r58))IN!!"43N9k!SaUqKQUM#-4#-
  276. X0)UeM'-B%M&8T45)!'jRERlF[EQjlIc'$'I9!FU%9M&hGhGQCQrEQCQDCQ8e81r@
  277. X0,3US2P#DT%,mP)P'l'#q5+!6Z)60`rcr#f!!!!#+-&r$#)8jZ9)5I2*&%k3I#Fm
  278. X3"+UVd)pdr`iL6@2SqF5+P4#*%J!'CQ8Q8dbCQCb&+P5T+#"bSG@-CQCQCQCP8TQ
  279. XCQCQC38j(pEA0#SJ)r+JIJ55N5AD[i-PC2k&&5Aer$F2FN!!!!$m'-2r$#)!8CL)
  280. X9%!*&)(iBNL%,k5Vq-)a%BidL$1-)d#5+LLL4%J!HBRdQ8ibCQCKP+P4*48$ri41
  281. X-CQCQBrrp8TQCQCQC!93llidXb!!qN!$+T%,mT)N@U"&2DL+K19)&!Geq92rm!!#
  282. X+-(r$#!"8TP)3%!4&4%8BNL)%%#G'-C4%BibL$1-+bL5*#N54#J!QCQ%Q8dbCQCJ
  283. X9*#LTK8#-Ba1-CQCQCL)K8TQCQCQC!15&aBS5%!!4%)J%*#5P+4DS#NK+BN&#+38
  284. X!93"8J!!!#&)[Rm-)J$NCL5!"$$RlK1F4c+!"%%I1jm1MG(i-A3G&a(%+4*m+2aq
  285. XCf4j6,*PZH1,N+4Ie3)aGmA1GhGhCfCe5PQCQGhF!6d3&XH(J!!%IFVrr*e[T&VJ
  286. XE2V'J332NK`"9!&2J!!!!)HLI`rJ!%!!!`!%!!!!!!!!!)!!1!!!!!!!!!!!!!3!
  287. X!!!!!!BB!!!!!"!)!!!J3!!!!!31!!!J!!!!!!!J!!!!!!!!!!!!!1!!!!!!!!!!
  288. X!!!!%!!!IJ!!!!!!"!!!!!&F!F!!!!!!!)"rq!!!!!!!!!J!!!!!!!!"!!!!!!!!
  289. X!!!!!!!!!!!!!!!!!!!!!!!!B$!!!#"!!!!!'!!!!%!!!!!!!%!!!!!!!!!!!!!!
  290. X!!!!!!!!!!!!!!!3!!!!!!!!!!!)!!!!!F!!!!!!!!!(!!!!!!!!!!!!!!!!!!!!
  291. X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  292. X!!!!!!!!!!!!!!3!%!!N!$J!@!"d!(J!K!#3!+3!Z!$!!0!!e!$N!2J"!!%8!5J"
  293. X2!&3!@3"H!'-!D!"T!'X!EJ"c!(B!HJ#"!)B!L`#3!!#9!*N!R3#L!+F!U!#Y!,)
  294. X!YJ#p!-)!a`$-!0%!eJ$E!1!!j3$U!2%!pJ$l!2m"!3%&!3F"#J%3!4)"&J%D!4i
  295. X")J%Q!5S",J%b!63"0`%l!6d"4!&)!8`"8!&8!9J"A!&I!@-"D!&[!A3"H!&m!Am
  296. X"J!'$!BJ"L!'0!C)"P`'E!D!"T3'U!Di"XJ'f!ES"[J(#!FB"bJ(1!G)"eJ(B!GS
  297. X"h3(J!H3"k!(X!I!"p!(i!I`#!!)%!JJ##`)2!K3#'3)H!L-#+!)Y!M8#23*&!NF
  298. X#5J*2!PF#AJ*M!QJ#E!*`!R8#HJ*q!S-#L3+1!T%#P3+D!U%#U!+Z!V)#X`+h!Vi
  299. X#`3,'!XX#d3,9!YN#h`,P!ZN#l`,e![`$!!-'!`S$$J-3!a)$&`-H!b-$+`-V!bX
  300. X$+`-V!bX$+`-V!bX$+`-V!bX$+`-V!bX$+`-V!bX$+`-V!bX$-3-h!ci!!!!!!!!
  301. X!!!!!!!$rrrrrrrm'"[rrrrrrr`!!rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
  302. Xrr`!(rrrrrrrr!`-"!`%&!3F!"J!*!!J"!`!%!!3""`!'!33!"3%$!3B!"J%'!!B
  303. X!"J!'!!B!"J!'!!B!"J)%!33""3!'!38""J!)!3F!"J!'!!B!"3!&!!B!"J%$!!B
  304. X!"J!&!!J!"J!'!!B!"J!'!!B!"J!'!!B!#!!'!!B!"3%%!3B""!!%!!B!!`!&!!8
  305. X!"3!&!!8!"!!&!!8!!`!%!!8!!`!)!!8!"3!&!!8!"3!&!!3!"3!'!!J!"J!'!!8
  306. X!"!!#!!3!"J!!!!B""`!'!!8!"J!'!!B!"3!&!!8!"3!&!!8!"3!&!!8!"3!&!!-
  307. X!!`!%!!3!"3!&!!8!"3!&!!8!"3!&!!8!"3!%!!8!"J!'!!B!"J!'!!B!#3!*!!N
  308. X""!!%!!B!#3!(!3S!"J!&!!8!"J!'!!8!"J!(!`J#"3%&!!8!#!%*!!B""J%$!!8
  309. X!#!%&!!B""`!)!!J"#!!'!!F$"`!'!!N!#!!&!!F""`)(!33""!!'!!J!"J!*rrr
  310. Xrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr`!'!!B!"`!!!!!
  311. X,*T!!!!!!!1m!$`!!rr3!$`!2"*N!$!!$!!%!2J!!!!!!!!!!!!!!!!!!!!!!!!!
  312. X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!F!%b!!!!!!B
  313. X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!93!!!!!!"q!i!!!!!!!!!!!!!!1!$J!!!!
  314. X!!!!!!!!!!!8!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  315. X!!!!!!!!!!!!!!!!!!!!!!!!!+)J#6**!!!!*!!!!!!!!!!!!!!!!!!!!!!!!!!!
  316. X!!!!!!!!!!!!@J+!!!!!!!!!!$RcJ#J!S!!!!!!!!!!$`!!!&!!3!!$!!!!3!!!!
  317. X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!F-!!!!!!!!!!!!!!!!!!!!!!!(!!#
  318. X)!!!!"#%!f3#))"N'L33$4))"!!!!!!!!!!!!!!!"9!!!!!!!&[bJ!!!!!!`!!!T
  319. X%S!S!+!!!#8U!!!-"qm!!"G&1IQ&*)!!%a1r"IRI[2!!!m!#2R[2rHKJ``Ji[I2I
  320. X2IiB-"M(p"3"!J!)$""--!!!!!!)!!!!!#TN3FHrLp#J5P@B""&+Qfa#+9BK&+l!
  321. X-H!21!!"d@J"qHJ!!%3$2rjE%Ti!!")!)J!!+A+!+!#J!!"*-J!4'!I`[m!AApC+
  322. X45-!!#5d3Jd#!--)!!3RJL''+%)BB-8-H-----)L'$!Ba$)D!))!#"!3""!!!!!!
  323. X#!!!!!!UQ%#)BB``J!!!!!!!!!!!!!!!!!!&*%S3&84iH*Z!!S)98!!S!*&%@p+K
  324. X!!!!!%3!J#P#J#J!S!!!5P3"!$!(m+"!&JT58S)Ib!!S@%39"!&$#""%+%8KJKK#
  325. X#'$*#V6$$$$!)KJa&845%!!lcRZjpYaE0ChRhGdBa'-IUJ#K5#&--,R1FjcR1Fk8
  326. XV1FjcSaM&5j!!JHP4)5%P3!#JM!#%Rd35%4D8X#lMT)!4!#!+8+Ik!#MZ!!!!%+4
  327. XIpI`S%!@2c'K!K-)!%K36#Ah`6d0)#"6T6k#'%))B0%*0-----!L&%NP+&%3!%Ba
  328. XM&)j6*c1BaML+4M%Ba#U!+&))8``aM'-BaM'-C5c'-BaM'-8e8([j8Pc-T%!4)*9
  329. X8L%4%F4&fPl!a&%5!)l*3#P#N'i$[%3!!!!%8Irhm+"!&K3B3S)8[Ra)8)*%$#*!
  330. X!`K2N*5SSB)IHRrJi3Jb`r3r2#)85U)SN4!!2M#-8M&0')aM'-)*'+U9%8N"%LJp
  331. X,$#plh[I#-BaP+-BaM'-Ba!8iKrP48Y#!!IRmT!2`2d53!*&'PM![&-Mm)8a3Qp1
  332. XrH2q$%3!!!(i-IrRm+"!&J!8Y&)3#!#)83'%$#*!![L!#45SSB)B3KKJd3Jb``3d
  333. X!L)5LU84%*!!4M#2dM&1')aM'-(*&5U*%LS"%LJK,$$'-BaM$rrrP+-BaM'-Ba!8
  334. X3Kr93h0#!!#)Ja95)4%84%ADAk&(e8)C"!)NSdJP,`HmIrq!!!Ja$qI`S%!@!"9-
  335. X)K!)!)K5!Ii-*%))3"%6hq'#'%)BF-N)-F-%-J)L%S4&%4#3!%B`M")a64L-BaM!
  336. X+484&43U!rri)4``aM'-B`K#%*5M'-BaM'-3&%([cd0,-J!"#))3!K)4&%K%@P!K
  337. X4"P'&36++6r2j5RmT%!!!!"%84Krm+"!&!"@6&%J!!%%P#)&$#4#%#qJ#""KKLK#
  338. X'($&#$($",&#)K%%5*)38!"'-Ba5-8bBM'-B`LNb%5-B+J)-''%F--BaM'-BaM'8
  339. XSaM'-CcR-"9%&i9%K)3!"r#'&9!!%4544&T`%N444J)&0"5!!!8S!+4%!!!!!T%J
  340. X"r#J3"B!1M1*)!#$!arF"22%218333F3IR[2`HK[3rJ`[323[#(K"%L6m&(q2mjl
  341. XNI&-@)aGjm('dK%LrkS#$"Hr#mmplh[HjcR1P+,R1FjV@Y!1qK!&f(Ki!!)3qH!2
  342. Xrj(V2d4D!$-lVMS#"!Ib3!!!"5J!SlJ!!!!"$`!(m,r!&!!3!!$!!)!!!!!!!!!!
  343. X!3!!!!!!!!!!!!!!!!!!!#!!!!!!!!!B-!!!!!!!)!J!!!%!J!!!!!!3(!!!!3!!
  344. X!!!!!!"!!!!!!!!!!!!!!!3"i!!!!!!!!!!!"9!!!3!!!&S!!!!!!!!%!!!!!!8S
  345. X!+!!!!!!!!%!!"q!!"3!!!!!!!%!!!!!!!!!!!)!!!!!!!!!!!!!!!!!!!!!!!!!
  346. X!!!!!!!!!!!!!L!)!!!"!)!!!!!"%!!!!!#!!!!!!!!!J!!!!!!!!!!!!!!!!!!!
  347. X!!!!!!!!!!!!!!)!!!"D!!!!!!!!"!!!!!!(+!#J!!!!!!!4!!!!!!!8!!!!!!!!
  348. X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(!-!!!!!!!!!!!
  349. X!1!!!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&8!!!!!!!IJ!!!!!!
  350. X!!J!!!!!!$J!i!!!!!!!$J!!!!!!&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  351. X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3!%!!X
  352. X!%!!A!"m!)!!M!#B!,!!a!$-!1!!j!$i!4!"'!%`!8J"C!&m!C3"V!(%!G`"i!(S
  353. X!IJ#$!)F!M3#9!*`!SJ#S!+i!X`#i!,i!a!$&!-X!d3$@!0d!i`$T!1m!p3$l!3%
  354. X"#!%1!48"(J%M!5J",3%[!63"0J%j!8%"3`&)!8d"8J&A!9`"B!&P!@S"E!&[!A3
  355. X"GJ&r!B3"L3'1!C-"Q!'G!D%"TJ'V!E3"Z3'q!F-"aJ((!FS"d!(3!GF"hJ(N!HN
  356. X"l`(e!IX#!!)&!JS#$`)8!KN#(J)M!LJ#,3)b!M3#0J)j!M`#33*'!NX#8!*9!PS
  357. X#A`*N!QN#EJ*a!R8#HJ+!!SB#M!+5!TN#S3+T!V)#Y!+h!Vd#a`,2!YB#f`,I!Z-
  358. X#k!,[![3#qJ-"!`B$#3-1!a-$'`-N!bX$-!-a!cB$2J0"!dF$6J08!eN$AJ0P!f`
  359. X$F30i!hm$L!1-!j-$Q!1G!jm$S31Q!kd$XJ1r!lm$[`1r!lm$[`1r!lm$[`1r!lm
  360. X$[`1r!lm$[`1r!lm$[`1r!lm$[`2&!mX$e3!!rrm!!!!!!!!!!2rrrrrrr`J)rrr
  361. Xrrrrr!!$rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrm%"!%$!38
  362. X"#3%(!3N!#3%$!38""3%)!3F""!%(!3-""`%)!`J"#!%)!3J"#!%)!3J"#!%)!3-
  363. X""!%'!3F""J%)!3S"#3%)!3J"#!%(!3F"#!%)!J8!"`%)!3F"#3%)!3J"#!%)!3J
  364. X"#!!)!3J"#3%,!3F""`%(!33""`%%!33!#!%%!3F""`%(!3F""`%'!3F""`%&!3B
  365. X""`%&!3X""`%(!3F""`%'!3F""J%(!3F"#`%(!3F""`%&!3-""3%)!!!"#3%*!3J
  366. X""`%)!3J"#!%(!3F""`%(!3F""`%(!3F""`%(!3F#"3%&!38""3%(!3F""`%(!3F
  367. X""`%(!3F""`%(!38""J%(!3J"#!%)!3J"#3%+!3S"#`%%!38"#!%-!!J!#`%(!3B
  368. X""J%(!3N""`%)!3N##J%&!!B!"J%+!3X!"`%)!J3""`%+!38"#!%*!3J"#!)+!!J
  369. X"#3)*!3J$$!%,!3B"#3%(!3F""!%%!3F"#3%)!3rrrrrrrrrrrrrrrrrrrrrrrrr
  370. Xrrrrrrrrrrrrrrrrrrrrrrrrrrrrr!JN##3!+YYX!!!"%!!!!!!!!!!!!#!!-!(S
  371. X!33"k!!`!#!!!!!!!!!!!!!!!!!!!!!!!!!!)!!`!IJ"r!(i!$!!)!!!!!!!!!!!
  372. X!!!!(!!N!!!"%!!!!!!!!!!!!!!!!!!!!!!!!!F!"3!&!"h!#)!&!!)!!!!!!!!!
  373. X!!!!!!!!!!!!!!!!"`!(!!F!(m!2J!F!!J!!*!!J!!!"%!!!!!!!!!!!!!"!!-!"
  374. XH!))!AJ!`!"!!!!!!!!!!!!!!!!!!!!!!!!!!%!!`!(i!rJ"q!$!!%!!!!!!!!!!
  375. X!!!!)!!B!!!"%!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!T!"F!#3!*!"m!!!!!!!!
  376. X!!!!!!!!!!!!!!!!!!!!3!$N!(`!2!!m!(`!,!!X!!!"%!!!!!!!!!!!!!!!!!!!
  377. X!!!!!!!!)!*3!k!#3!!#3!!$i!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!#F!2J!m!$
  378. X`!2J!!!X!"!!!!%6i!*!!!*!!!1J!P!!)!!!!!!!!!!!!!!!!!!!!!!!!!!!!q!$
  379. X`!2!!q!#F!!J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!%!!!!4!!!!!!2m!J3#"!
  380. X)%!J3#"!)%!J3#"!)%!r`!!!!!!!!!!!2m"ri'"JB'"JB'"JB'"JB'"JB'"JB(rJ
  381. X2m!!!!!!!"`!(!!!!4!%!!S!%3!lJ!S!#J!1!!!!!!!!!!!!!!!!!!!!!!!!!!3!
  382. X$J!I!$q!$J!1!!i!!!!!!!!!!!!!!!!!!!!!!!!!!"J!(!!!!4!!I!!N!#3!A!#N
  383. X!%!!!!!!!!!!!!!!!!!!!!!!!!!!!!"m!$`!2!"m!13!3!!!!!!!!!!!!!!!!!!!
  384. X!!!!!!!!!"!!,!!!!%!p1CA4)B@0V)>EQ4[Gh-!!!!3!!J"D3&*!!&N!83",!!
  385. X"3!!!!"S!$!&A!9!"G`&8!9)#Gbd!!@8"F3&b!A3"HJ!!!)3!%3JMB@4UGA0d$3B
  386. XMBfKKG!d&)f4TF!d()fC[FQ0P$3BMDR9YF!d')fa[Eh30#50YEfjcG'9b$3BMEQ&
  387. XYC3d()fpQCQ9b$3BMF(*KH3d&)h*eBJd&)h0TG!d')h4eFQi0##0eER4bBA!0#50
  388. XfCA*cD@pZ$3JMGfPZC'ph$3BMGfP`C3d!!!!5!!J!J!#"!))!J`#%!)8!KJ#(!!!
  389. X!R!#(!!!!!!!!!!$rrrpl"%PZCQm38(*PGQP[GA-J6@9cFf&RC3"3!!!",3!!!!!
  390. X06'p[Db""G#"'E'p[FJ!!!!!98hPYBQpX)%PZCQmJ3RNJ3h9bFfpb!!!!!"G6H@e
  391. XLEf`J5@jQEb"#H5",CAPLEf&bC!!!!!!*9(*KF#"*EQC[!!!!!!%Y!!!!!!a%DA0
  392. XMEhCPFQPPFcm!!!!!!!!!!)-!K!!!!!!!!!!!rrrrG`P*ERCPER4[FRN*5@jfC@j
  393. XdEh*j!%N!!"**ERCPER4[FRNJ3RNJ9(P`CA-!!!!!!5d!!!!!"%4bEh!!!!!!$84
  394. XbEh!J3RNJ9(P`CA-!!!!!"e"TBfXJ9A!!!!!!!5d!!!!!$94[CfGXC5"3D@0VGA!
  395. X!!!!!!!!!!,%!K3!!!!!!!!!!rrrrI`C8D'PZCh-,9f9KFL""FQe[GA)!!!!!#9G
  396. XPBA)J8QPZC`!!!!!-9fPPE'3J9f9KF'pZ!!!!!!p8B@YP)%pQCL""FQe[GA)!!!!
  397. X!$94KDf8J6fCQ)&*TEQF!!!!!$P9ZGfPPE'3J9f9KF'pZ!!!!!!%Y!!!!!!0&BA3
  398. X!!!!!"9&eB@CQ!!!!!!45C@&N!!!!!!98D(*[G`!!!!!$@Q&`!!!!!!!!!!$r!)B
  399. X!!!!!!!!!!2rrrrm)4AKdC@jNC@333@4UGA0d)%PZGQ9ZG'pbH3!!!!!%3fKKG!!
  400. X!!!!$4'P`!!!!!!T'Eh*MC5"-Ef0V!%B!!!4+G@e`!!!!!!K-Efpd)%*[H!"-!!!
  401. X26@pZFh4PFL""BQPXDA4j!%d!!!41B@eP!!!!!!p2CQCPFL"6B@0bD@CTBf8!!!!
  402. X!"&"bBAN!!!!!#&*eBL"-B@e`!!!!!!06DA3!!!!!#e4eFQiJ9@jNC@&N!!!!!!C
  403. X9ER4bBA!!!!!!$&CPFR0TEfiJ5@jQE`!!!!!19fPZC'ph)%0XC@&ZGA!!!!!!#9G
  404. XTF'8J4Q&MC3!!!!!!!!!!%3!)!4!!!6S"1`)[EJ&H!!&F!!!!IJ#$!!!!!!!!!!$
  405. Xrrrlr"N&MG'P[EJT$E'PYBL"%EhGZ!!!!!!K$E'PYBL"9F!!!!!!%5fPMD`",!!!
  406. X*6h"PEL"%Efpb!!!!!!T$E'pcC5"%Efpb!!!!!!C6C@&bBfJ!!!!!#&4PE'9`Eh*
  407. Xd!&3!!!%Y!!!!!!03BAN!!!!!!!!!!"-!#3%q!6`""!&[!@-"F`%8!!&`!!!"!!!
  408. X!4SN!!%@*!!!&B!$Nrl`2%!!!!"`%0J!39dP14!!'!)T869"-!!!!hNjeEA!!!3$
  409. XU38a59!!"!3*%594-!!N"'Ne#39)!!!'5689193!(!Cj69&)M!!J"rQPMFc3!!J*
  410. XUD@0c)`!#!Sj*3diM!!)#XQPME$3!!J,@4%a24`!(![T'6dj8!!-$@NC26N3!!31
  411. X+3e958`!)!k*69&)J!!!%$J#!!#d!!!"i!16m#!#"!!!!!!!!!16m"!##!!J!!!!
  412. XJ!16m!!#$!!m!!!$H!16lr!#%!"F!!!"!!16lq!#&!"`!!!"D!16lp!#'!#%!!!%
  413. X#!16lm!#!!$)!!!#H!16m$!#!!$F!!#SQ!16m&!#"!%%!!#T!!16m%!#"rrmJ!!R
  414. XN!16m+!#!rrm!!!f3!!$Nr#3!JIrr)!!*p!$NrJ`!J2rr!!!0S!$NrK!!J[rr!!!
  415. X35J$NrK3!Jrrr!!!3X!$NrKJ!K2rr!!!5,!$NrL!!L2rr!!!2`J$NrL3!KIrr!!!
  416. X1EJ$Nr$J!K[rr!!!1a!$Nr$3!Krrr!!!2,!$Nr$!!LIrr!!!6IJ$Nr#`!J2rr!!"
  417. X"jJ$NrJJ!JIrr!!!"P`$Nqc`!J[rr!!!"q!$NrJ3!Jrrr!!"%m!$NrK`!K2rr!!"
  418. X#R!$Nqq`!J2rr!!!"D`$Nr1`!KIrr!!"$)`$NqqJ!K[rr!!"$f!$Nqq3!Krrr!!"
  419. X"r!$Nqq!!J!#q)!!",3$Nr&`!J3$-)!!"4`$Nr&J!JJ$A)!!"@3$Nr&3!J`$K)!!
  420. X"*J$Nqd!!K!$j)!"&FJ$Nr%`!K3%&)!"",!$Nr%J!KJ%8)!""3!$Nr%3!K`$V)!"
  421. X"AJ$Nr%!!L!%J)!"%f`$Nr$`$k2rr!!!#4!$Nr'J$kIrr!!!#b!$Nr'3$k[rr!!!
  422. X6lJ$Nr'!$k2rr!!!$6!$Nr(3$kIrr!!!$N!!!j2a`!qVrr`!!#dJ!j2aX!qMrr`!
  423. X!!p3!j2b!!qRrr`!!"0J!j2am!qVrr`!!#N3!j2ai!qMrr`!!"G`!j2b-!qRrr`!
  424. X!"q!!j2b)!qVrr`!!#i`!j2b%!)3!@`!!$Ii!j2bX!)J!53!!$kB!j2bS!)F!9J!
  425. X!$KS!j2bN!)B!8J!!$MB!j2bJ!)8!6`!!$P)!j2bF!)N!C3!!%f)!j2bB!))!F`!
  426. X!$FB!j2b8!)-!HJ!!$H)!j2b3!%Z*rrmJ!"4b!16m[%Z-rrm!!"hq!16mZ%`*!*F
  427. XJ!#UJ!16mY%`-!+3J!$0Q!16mX!#A!)-%!#RJ!16ma!#B!)`%!#TD!16m`!)!rrm
  428. XJ!%"!!16mk!)$rrmJ!%#)!16p!!)%rrmJ!%$3!16mi!)&rrmJ!$k3!!$Nr0`#"rr
  429. Xr)!!qf!$Nr0J#!Irr)!!r)!$Nr03#"[rr)!!rD!$Nr0!##2rr)!!rX!$Nr-`#![r
  430. Xr)!!rq!$Nr-J!J!#[!!""'!$Nr2!(6@9cFf&RC3C6G'&dGA-(4(9ZCf9[EJ40C@j
  431. Xe"&4PH(3,4'PKCfj[Fh4TBh-%6P9-6!41G@e`#99ZFfKTCR4PC!G6D'PQG'9N"AP
  432. XZ6Q&a!RPZ!hPZF34jEQ&a#80SBA*KBh4PFJe6E@&XE#"(CA4XD@jP"P"bEfe`G!K
  433. X&H(4PEQ4PC!K)B@0V4QpZG!T38dKKBfY'Efjd$&"65'&MDdC[ER3J13T38dKKBfY
  434. X'Efjd$P"bC@BJ4QPXC5"1B@eP$8eTFf-Z)&0dFQPZCh-+3A"`E'8J6@9ZG3P'D@a
  435. XP)%ePER8*4@4TG#"0C@je$89iG'9ZC'9N)%ePER8,3@0dD@pZ)%ePER815@jfC@j
  436. XdEh*j)%ePER8,9'KTEQGc)%ePER8*5@jQEb"0C@jeD'J:
  437. END_OF_FILE
  438. if test 26482 -ne `wc -c <'sys/mac/NHrsrc.hqx'`; then
  439.     echo shar: \"'sys/mac/NHrsrc.hqx'\" unpacked with wrong size!
  440. fi
  441. # end of 'sys/mac/NHrsrc.hqx'
  442. if test -f 'sys/share/lev_yacc.c2' -a "${1}" != "-c" ; then 
  443.   echo shar: Renaming existing file \"'sys/share/lev_yacc.c2'\" to \"'sys/share/lev_yacc.c2.orig'\"
  444.   mv -f 'sys/share/lev_yacc.c2' 'sys/share/lev_yacc.c2.orig'
  445. fi
  446. echo shar: Extracting \"'sys/share/lev_yacc.c2'\" \(26312 characters\)
  447. sed "s/^X//" >'sys/share/lev_yacc.c2' <<'END_OF_FILE'
  448. Xcase 25:
  449. X# line 376 "lev_comp.y"
  450. X{
  451. X            tmproom[nrooms] = New(room);
  452. X            (void) memset((genericptr_t) tmproom[nrooms], 0,
  453. X                    sizeof *tmproom[nrooms]);
  454. X            tmproom[nrooms]->name = (char *) 0;
  455. X            tmproom[nrooms]->parent = (char *) 0;
  456. X            tmproom[nrooms]->rtype = 0;
  457. X            tmproom[nrooms]->rlit = 0;
  458. X            tmproom[nrooms]->xalign = ERR;
  459. X            tmproom[nrooms]->yalign = ERR;
  460. X            tmproom[nrooms]->x = 0;
  461. X            tmproom[nrooms]->y = 0;
  462. X            tmproom[nrooms]->w = 2;
  463. X            tmproom[nrooms]->h = 2;
  464. X            in_room = 1;
  465. X          } break;
  466. Xcase 31:
  467. X# line 404 "lev_comp.y"
  468. X{
  469. X            tmpcor[0] = New(corridor);
  470. X            tmpcor[0]->src.room = -1;
  471. X            ncorridor = 1;
  472. X          } break;
  473. Xcase 34:
  474. X# line 416 "lev_comp.y"
  475. X{
  476. X            tmpcor[ncorridor] = New(corridor);
  477. X            tmpcor[ncorridor]->src.room = yypvt[-2].corpos.room;
  478. X            tmpcor[ncorridor]->src.wall = yypvt[-2].corpos.wall;
  479. X            tmpcor[ncorridor]->src.door = yypvt[-2].corpos.door;
  480. X            tmpcor[ncorridor]->dest.room = yypvt[-0].corpos.room;
  481. X            tmpcor[ncorridor]->dest.wall = yypvt[-0].corpos.wall;
  482. X            tmpcor[ncorridor]->dest.door = yypvt[-0].corpos.door;
  483. X            ncorridor++;
  484. X          } break;
  485. Xcase 35:
  486. X# line 427 "lev_comp.y"
  487. X{
  488. X            tmpcor[ncorridor]->src.room = yypvt[-2].corpos.room;
  489. X            tmpcor[ncorridor]->src.wall = yypvt[-2].corpos.wall;
  490. X            tmpcor[ncorridor]->src.door = yypvt[-2].corpos.door;
  491. X            tmpcor[ncorridor]->dest.room = -1;
  492. X            tmpcor[ncorridor]->dest.wall = yypvt[-0].i;
  493. X            ncorridor++;
  494. X          } break;
  495. Xcase 36:
  496. X# line 438 "lev_comp.y"
  497. X{
  498. X            if (yypvt[-5].i >= nrooms)
  499. X                yyerror("Wrong room number!");
  500. X            yyval.corpos.room = yypvt[-5].i;
  501. X            yyval.corpos.wall = yypvt[-3].i;
  502. X            yyval.corpos.door = yypvt[-1].i;
  503. X          } break;
  504. Xcase 37:
  505. X# line 448 "lev_comp.y"
  506. X{
  507. X            store_room();
  508. X          } break;
  509. Xcase 38:
  510. X# line 452 "lev_comp.y"
  511. X{
  512. X            store_room();
  513. X          } break;
  514. Xcase 39:
  515. X# line 458 "lev_comp.y"
  516. X{
  517. X            tmproom[nrooms] = New(room);
  518. X            (void) memset((genericptr_t) tmproom[nrooms], 0,
  519. X                    sizeof *tmproom[nrooms]);
  520. X            tmproom[nrooms]->parent = dup_string(yypvt[-1].map);
  521. X            tmproom[nrooms]->name = (char *) 0;
  522. X            tmproom[nrooms]->rtype = yypvt[-9].i;
  523. X            tmproom[nrooms]->rlit = yypvt[-7].i;
  524. X            tmproom[nrooms]->filled = yypvt[-0].i;
  525. X            tmproom[nrooms]->xalign = ERR;
  526. X            tmproom[nrooms]->yalign = ERR;
  527. X            tmproom[nrooms]->x = current_coord.x;
  528. X            tmproom[nrooms]->y = current_coord.y;
  529. X            tmproom[nrooms]->w = current_size.width;
  530. X            tmproom[nrooms]->h = current_size.height;
  531. X            in_room = 1;
  532. X          } break;
  533. Xcase 40:
  534. X# line 478 "lev_comp.y"
  535. X{
  536. X            tmproom[nrooms] = New(room);
  537. X            (void) memset((genericptr_t) tmproom[nrooms], 0,
  538. X                    sizeof *tmproom[nrooms]);
  539. X            tmproom[nrooms]->name = (char *) 0;
  540. X            tmproom[nrooms]->parent = (char *) 0;
  541. X            tmproom[nrooms]->rtype = yypvt[-9].i;
  542. X            tmproom[nrooms]->rlit = yypvt[-7].i;
  543. X            tmproom[nrooms]->filled = yypvt[-0].i;
  544. X            tmproom[nrooms]->xalign = current_align.x;
  545. X            tmproom[nrooms]->yalign = current_align.y;
  546. X            tmproom[nrooms]->x = current_coord.x;
  547. X            tmproom[nrooms]->y = current_coord.y;
  548. X            tmproom[nrooms]->w = current_size.width;
  549. X            tmproom[nrooms]->h = current_size.height;
  550. X            in_room = 1;
  551. X          } break;
  552. Xcase 41:
  553. X# line 498 "lev_comp.y"
  554. X{
  555. X            yyval.i = 1;
  556. X          } break;
  557. Xcase 42:
  558. X# line 502 "lev_comp.y"
  559. X{
  560. X            yyval.i = yypvt[-0].i;
  561. X          } break;
  562. Xcase 43:
  563. X# line 508 "lev_comp.y"
  564. X{
  565. X            if ( yypvt[-3].i < 1 || yypvt[-3].i > 5 ||
  566. X                yypvt[-1].i < 1 || yypvt[-1].i > 5 ) {
  567. X                yyerror("Room position should be between 1 & 5!");
  568. X            } else {
  569. X                current_coord.x = yypvt[-3].i;
  570. X                current_coord.y = yypvt[-1].i;
  571. X            }
  572. X          } break;
  573. Xcase 44:
  574. X# line 518 "lev_comp.y"
  575. X{
  576. X            current_coord.x = current_coord.y = ERR;
  577. X          } break;
  578. Xcase 45:
  579. X# line 524 "lev_comp.y"
  580. X{
  581. X            if ( yypvt[-3].i < 0 || yypvt[-1].i < 0) {
  582. X                yyerror("Invalid subroom position !");
  583. X            } else {
  584. X                current_coord.x = yypvt[-3].i;
  585. X                current_coord.y = yypvt[-1].i;
  586. X            }
  587. X          } break;
  588. Xcase 46:
  589. X# line 533 "lev_comp.y"
  590. X{
  591. X            current_coord.x = current_coord.y = ERR;
  592. X          } break;
  593. Xcase 47:
  594. X# line 539 "lev_comp.y"
  595. X{
  596. X            current_align.x = yypvt[-3].i;
  597. X            current_align.y = yypvt[-1].i;
  598. X          } break;
  599. Xcase 48:
  600. X# line 544 "lev_comp.y"
  601. X{
  602. X            current_align.x = current_align.y = ERR;
  603. X          } break;
  604. Xcase 49:
  605. X# line 550 "lev_comp.y"
  606. X{
  607. X            current_size.width = yypvt[-3].i;
  608. X            current_size.height = yypvt[-1].i;
  609. X          } break;
  610. Xcase 50:
  611. X# line 555 "lev_comp.y"
  612. X{
  613. X            current_size.height = current_size.width = ERR;
  614. X          } break;
  615. Xcase 66:
  616. X# line 580 "lev_comp.y"
  617. X{
  618. X            if (tmproom[nrooms]->name)
  619. X                yyerror("This room already has a name!");
  620. X            else
  621. X                tmproom[nrooms]->name = dup_string(yypvt[-0].map);
  622. X          } break;
  623. Xcase 67:
  624. X# line 589 "lev_comp.y"
  625. X{
  626. X            if (tmproom[nrooms]->chance)
  627. X                yyerror("This room already assigned a chance!");
  628. X            else if (tmproom[nrooms]->rtype == OROOM)
  629. X                yyerror("Only typed rooms can have a chance!");
  630. X            else if (yypvt[-0].i < 1 || yypvt[-0].i > 99)
  631. X                yyerror("The chance is supposed to be precentile.");
  632. X            else
  633. X                tmproom[nrooms]->chance = yypvt[-0].i;
  634. X           } break;
  635. Xcase 68:
  636. X# line 602 "lev_comp.y"
  637. X{
  638. X            /* ERR means random here */
  639. X            if (yypvt[-2].i == ERR && yypvt[-0].i != ERR) {
  640. X             yyerror("If the door wall is random, so must be its pos!");
  641. X            } else {
  642. X                tmprdoor[ndoor] = New(room_door);
  643. X                tmprdoor[ndoor]->secret = yypvt[-6].i;
  644. X                tmprdoor[ndoor]->mask = yypvt[-4].i;
  645. X                tmprdoor[ndoor]->wall = yypvt[-2].i;
  646. X                tmprdoor[ndoor]->pos = yypvt[-0].i;
  647. X                ndoor++;
  648. X            }
  649. X          } break;
  650. Xcase 75:
  651. X# line 630 "lev_comp.y"
  652. X{
  653. X            maze.filling = yypvt[-0].i;
  654. X            if (index(yypvt[-2].map, '.'))
  655. X                yyerror("Invalid dot ('.') in level name.");
  656. X            if (strlen(yypvt[-2].map) > 8)
  657. X                yyerror("Level names limited to 8 characters.");
  658. X            yyval.map = yypvt[-2].map;
  659. X            in_room = 0;
  660. X          } break;
  661. Xcase 76:
  662. X# line 642 "lev_comp.y"
  663. X{
  664. X            yyval.i = get_floor_type((char)yypvt[-0].i);
  665. X          } break;
  666. Xcase 77:
  667. X# line 646 "lev_comp.y"
  668. X{
  669. X            yyval.i = -1;
  670. X          } break;
  671. Xcase 80:
  672. X# line 656 "lev_comp.y"
  673. X{
  674. X            store_part();
  675. X          } break;
  676. Xcase 81:
  677. X# line 662 "lev_comp.y"
  678. X{
  679. X            tmppart[npart] = New(mazepart);
  680. X            tmppart[npart]->halign = 1;
  681. X            tmppart[npart]->valign = 1;
  682. X            tmppart[npart]->nrobjects = 0;
  683. X            tmppart[npart]->nloc = 0;
  684. X            tmppart[npart]->nrmonst = 0;
  685. X            tmppart[npart]->xsize = 1;
  686. X            tmppart[npart]->ysize = 1;
  687. X            tmppart[npart]->map = (char **) alloc(sizeof(char *));
  688. X            tmppart[npart]->map[0] = (char *) alloc(1);
  689. X            tmppart[npart]->map[0][0] = STONE;
  690. X            max_x_map = COLNO-1;
  691. X            max_y_map = ROWNO;
  692. X          } break;
  693. Xcase 82:
  694. X# line 678 "lev_comp.y"
  695. X{
  696. X            tmppart[npart] = New(mazepart);
  697. X            tmppart[npart]->halign = yypvt[-1].i % 10;
  698. X            tmppart[npart]->valign = yypvt[-1].i / 10;
  699. X            tmppart[npart]->nrobjects = 0;
  700. X            tmppart[npart]->nloc = 0;
  701. X            tmppart[npart]->nrmonst = 0;
  702. X            scan_map(yypvt[-0].map);
  703. X          } break;
  704. Xcase 83:
  705. X# line 690 "lev_comp.y"
  706. X{
  707. X            yyval.i = yypvt[-2].i + (yypvt[-0].i * 10);
  708. X          } break;
  709. Xcase 90:
  710. X# line 708 "lev_comp.y"
  711. X{
  712. X            if (tmppart[npart]->nrobjects) {
  713. X                yyerror("Object registers already initialized!");
  714. X            } else {
  715. X                tmppart[npart]->robjects = (char *)alloc(n_olist);
  716. X                (void) memcpy((genericptr_t)tmppart[npart]->robjects,
  717. X                      (genericptr_t)olist, n_olist);
  718. X                tmppart[npart]->nrobjects = n_olist;
  719. X            }
  720. X          } break;
  721. Xcase 91:
  722. X# line 719 "lev_comp.y"
  723. X{
  724. X            if (tmppart[npart]->nloc) {
  725. X                yyerror("Location registers already initialized!");
  726. X            } else {
  727. X                register int i;
  728. X                tmppart[npart]->rloc_x = (char *) alloc(n_plist);
  729. X                tmppart[npart]->rloc_y = (char *) alloc(n_plist);
  730. X                for(i=0;i<n_plist;i++) {
  731. X                tmppart[npart]->rloc_x[i] = plist[i].x;
  732. X                tmppart[npart]->rloc_y[i] = plist[i].y;
  733. X                }
  734. X                tmppart[npart]->nloc = n_plist;
  735. X            }
  736. X          } break;
  737. Xcase 92:
  738. X# line 734 "lev_comp.y"
  739. X{
  740. X            if (tmppart[npart]->nrmonst) {
  741. X                yyerror("Monster registers already initialized!");
  742. X            } else {
  743. X                tmppart[npart]->rmonst = (char *) alloc(n_mlist);
  744. X                (void) memcpy((genericptr_t)tmppart[npart]->rmonst,
  745. X                      (genericptr_t)mlist, n_mlist);
  746. X                tmppart[npart]->nrmonst = n_mlist;
  747. X            }
  748. X          } break;
  749. Xcase 93:
  750. X# line 747 "lev_comp.y"
  751. X{
  752. X            if (n_olist < MAX_REGISTERS)
  753. X                olist[n_olist++] = yypvt[-0].i;
  754. X            else
  755. X                yyerror("Object list too long!");
  756. X          } break;
  757. Xcase 94:
  758. X# line 754 "lev_comp.y"
  759. X{
  760. X            if (n_olist < MAX_REGISTERS)
  761. X                olist[n_olist++] = yypvt[-2].i;
  762. X            else
  763. X                yyerror("Object list too long!");
  764. X          } break;
  765. Xcase 95:
  766. X# line 763 "lev_comp.y"
  767. X{
  768. X            if (n_mlist < MAX_REGISTERS)
  769. X                mlist[n_mlist++] = yypvt[-0].i;
  770. X            else
  771. X                yyerror("Monster list too long!");
  772. X          } break;
  773. Xcase 96:
  774. X# line 770 "lev_comp.y"
  775. X{
  776. X            if (n_mlist < MAX_REGISTERS)
  777. X                mlist[n_mlist++] = yypvt[-2].i;
  778. X            else
  779. X                yyerror("Monster list too long!");
  780. X          } break;
  781. Xcase 97:
  782. X# line 779 "lev_comp.y"
  783. X{
  784. X            if (n_plist < MAX_REGISTERS)
  785. X                plist[n_plist++] = current_coord;
  786. X            else
  787. X                yyerror("Location list too long!");
  788. X          } break;
  789. Xcase 98:
  790. X# line 786 "lev_comp.y"
  791. X{
  792. X            if (n_plist < MAX_REGISTERS)
  793. X                plist[n_plist++] = current_coord;
  794. X            else
  795. X                yyerror("Location list too long!");
  796. X          } break;
  797. Xcase 122:
  798. X# line 822 "lev_comp.y"
  799. X{
  800. X            tmpmonst[nmons] = New(monster);
  801. X            tmpmonst[nmons]->x = current_coord.x;
  802. X            tmpmonst[nmons]->y = current_coord.y;
  803. X            tmpmonst[nmons]->class = yypvt[-4].i;
  804. X            tmpmonst[nmons]->peaceful = -1; /* no override */
  805. X            tmpmonst[nmons]->asleep = -1;
  806. X            tmpmonst[nmons]->align = - MAX_REGISTERS - 2;
  807. X            tmpmonst[nmons]->name = (char *) 0;
  808. X            tmpmonst[nmons]->appear = 0;
  809. X            tmpmonst[nmons]->appear_as = (char *) 0;
  810. X            if (!in_room)
  811. X                check_coord(current_coord.x, current_coord.y,
  812. X                    "Monster");
  813. X            if (!yypvt[-2].map)
  814. X                tmpmonst[nmons]->id = -1;
  815. X            else {
  816. X                int token = get_monster_id(yypvt[-2].map, (char) yypvt[-4].i);
  817. X                if (token == ERR) {
  818. X                    yywarning("Illegal monster name!  Making random monster.");
  819. X                    tmpmonst[nmons]->id = -1;
  820. X                } else
  821. X                    tmpmonst[nmons]->id = token;
  822. X            }
  823. X          } break;
  824. Xcase 123:
  825. X# line 848 "lev_comp.y"
  826. X{
  827. X            nmons++;
  828. X          } break;
  829. Xcase 126:
  830. X# line 858 "lev_comp.y"
  831. X{
  832. X            tmpmonst[nmons]->name = dup_string(yypvt[-0].map);
  833. X          } break;
  834. Xcase 127:
  835. X# line 862 "lev_comp.y"
  836. X{
  837. X            tmpmonst[nmons]->peaceful = yypvt[-0].i;
  838. X          } break;
  839. Xcase 128:
  840. X# line 866 "lev_comp.y"
  841. X{
  842. X            tmpmonst[nmons]->asleep = yypvt[-0].i;
  843. X          } break;
  844. Xcase 129:
  845. X# line 870 "lev_comp.y"
  846. X{
  847. X            tmpmonst[nmons]->align = yypvt[-0].i;
  848. X          } break;
  849. Xcase 130:
  850. X# line 874 "lev_comp.y"
  851. X{
  852. X            tmpmonst[nmons]->appear = yypvt[-1].i;
  853. X            tmpmonst[nmons]->appear_as = dup_string(yypvt[-0].map);
  854. X          } break;
  855. Xcase 131:
  856. X# line 881 "lev_comp.y"
  857. X{
  858. X            tmpobj[nobj] = New(object);
  859. X            tmpobj[nobj]->x = current_coord.x;
  860. X            tmpobj[nobj]->y = current_coord.y;
  861. X            tmpobj[nobj]->class = yypvt[-4].i;
  862. X            tmpobj[nobj]->corpsenm = -1;    /* init as none */
  863. X            tmpobj[nobj]->curse_state = -1;
  864. X            tmpobj[nobj]->name = (char *) 0;
  865. X            if (!in_room)
  866. X                check_coord(current_coord.x, current_coord.y,
  867. X                    "Object");
  868. X            if (!yypvt[-2].map)
  869. X                tmpobj[nobj]->id = -1;
  870. X            else {
  871. X                int token = get_object_id(yypvt[-2].map);
  872. X                if (token == ERR) {
  873. X                    yywarning("Illegal object name!  Making random object.");
  874. X                    tmpobj[nobj]->id = -1;
  875. X                } else
  876. X                    tmpobj[nobj]->id = token;
  877. X            }
  878. X          } break;
  879. Xcase 132:
  880. X# line 904 "lev_comp.y"
  881. X{
  882. X            nobj++;
  883. X          } break;
  884. Xcase 133:
  885. X# line 910 "lev_comp.y"
  886. X{
  887. X            tmpobj[nobj]->spe = -127;
  888. X          } break;
  889. Xcase 134:
  890. X# line 914 "lev_comp.y"
  891. X{
  892. X            int token = get_monster_id(yypvt[-2].map, (char)0);
  893. X            if (token == ERR)    /* "random" */
  894. X                tmpobj[nobj]->corpsenm = -2;
  895. X            else
  896. X                tmpobj[nobj]->corpsenm = token;
  897. X            tmpobj[nobj]->spe = yypvt[-0].i;
  898. X          } break;
  899. Xcase 135:
  900. X# line 923 "lev_comp.y"
  901. X{
  902. X            tmpobj[nobj]->curse_state = yypvt[-4].i;
  903. X            tmpobj[nobj]->spe = yypvt[-2].i;
  904. X            if (yypvt[-0].map)
  905. X                tmpobj[nobj]->name = dup_string(yypvt[-0].map);
  906. X            else
  907. X                tmpobj[nobj]->name = (char *) 0;
  908. X          } break;
  909. Xcase 139:
  910. X# line 939 "lev_comp.y"
  911. X{
  912. X            yyval.i = -127;
  913. X          } break;
  914. Xcase 140:
  915. X# line 945 "lev_comp.y"
  916. X{
  917. X            tmpdoor[ndoor] = New(door);
  918. X            tmpdoor[ndoor]->x = current_coord.x;
  919. X            tmpdoor[ndoor]->y = current_coord.y;
  920. X            tmpdoor[ndoor]->mask = yypvt[-2].i;
  921. X            if(current_coord.x >= 0 && current_coord.y >= 0 &&
  922. X               tmpmap[current_coord.y][current_coord.x] != DOOR &&
  923. X               tmpmap[current_coord.y][current_coord.x] != SDOOR)
  924. X                yyerror("Door decl doesn't match the map");
  925. X            ndoor++;
  926. X          } break;
  927. Xcase 141:
  928. X# line 959 "lev_comp.y"
  929. X{
  930. X            tmptrap[ntrap] = New(trap);
  931. X            tmptrap[ntrap]->x = current_coord.x;
  932. X            tmptrap[ntrap]->y = current_coord.y;
  933. X            tmptrap[ntrap]->type = yypvt[-2].i;
  934. X            if (!in_room)
  935. X                check_coord(current_coord.x, current_coord.y,
  936. X                    "Trap");
  937. X            ntrap++;
  938. X          } break;
  939. Xcase 142:
  940. X# line 972 "lev_comp.y"
  941. X{
  942. X                int x, y, dir;
  943. X
  944. X            tmpdb[ndb] = New(drawbridge);
  945. X            x = tmpdb[ndb]->x = current_coord.x;
  946. X            y = tmpdb[ndb]->y = current_coord.y;
  947. X            /* convert dir from a DIRECTION to a DB_DIR */
  948. X            dir = yypvt[-2].i;
  949. X            switch(dir) {
  950. X            case W_NORTH: dir = DB_NORTH; y--; break;
  951. X            case W_SOUTH: dir = DB_SOUTH; y++; break;
  952. X            case W_EAST:  dir = DB_EAST;  x++; break;
  953. X            case W_WEST:  dir = DB_WEST;  x--; break;
  954. X            default:
  955. X                yyerror("Invalid drawbridge direction");
  956. X                break;
  957. X            }
  958. X            tmpdb[ndb]->dir = dir;
  959. X            if (current_coord.x >= 0 && current_coord.y >= 0 &&
  960. X                !IS_WALL(tmpmap[y][x])) {
  961. X                char ebuf[60];
  962. X                Sprintf(ebuf,
  963. X                    "Wall needed for drawbridge (%02d, %02d)",
  964. X                    current_coord.x, current_coord.y);
  965. X                yyerror(ebuf);
  966. X            }
  967. X
  968. X            if ( yypvt[-0].i == D_ISOPEN )
  969. X                tmpdb[ndb]->db_open = 1;
  970. X            else if ( yypvt[-0].i == D_CLOSED )
  971. X                tmpdb[ndb]->db_open = 0;
  972. X            else
  973. X                yyerror("A drawbridge can only be open or closed!");
  974. X            ndb++;
  975. X           } break;
  976. Xcase 143:
  977. X# line 1010 "lev_comp.y"
  978. X{
  979. X            tmpwalk[nwalk] = New(walk);
  980. X            tmpwalk[nwalk]->x = current_coord.x;
  981. X            tmpwalk[nwalk]->y = current_coord.y;
  982. X            tmpwalk[nwalk]->dir = yypvt[-0].i;
  983. X            nwalk++;
  984. X          } break;
  985. Xcase 144:
  986. X# line 1020 "lev_comp.y"
  987. X{
  988. X            wallify_map();
  989. X          } break;
  990. Xcase 145:
  991. X# line 1026 "lev_comp.y"
  992. X{
  993. X            tmplad[nlad] = New(lad);
  994. X            tmplad[nlad]->x = current_coord.x;
  995. X            tmplad[nlad]->y = current_coord.y;
  996. X            tmplad[nlad]->up = yypvt[-0].i;
  997. X            if (!in_room)
  998. X                check_coord(current_coord.x, current_coord.y,
  999. X                    "Ladder");
  1000. X            nlad++;
  1001. X          } break;
  1002. Xcase 146:
  1003. X# line 1039 "lev_comp.y"
  1004. X{
  1005. X            tmpstair[nstair] = New(stair);
  1006. X            tmpstair[nstair]->x = current_coord.x;
  1007. X            tmpstair[nstair]->y = current_coord.y;
  1008. X            tmpstair[nstair]->up = yypvt[-0].i;
  1009. X            if (!in_room)
  1010. X                check_coord(current_coord.x, current_coord.y,
  1011. X                    "Stairway");
  1012. X            nstair++;
  1013. X          } break;
  1014. Xcase 147:
  1015. X# line 1052 "lev_comp.y"
  1016. X{
  1017. X            tmplreg[nlreg] = New(lev_region);
  1018. X            tmplreg[nlreg]->in_islev = yypvt[-0].i;
  1019. X            tmplreg[nlreg]->inarea.x1 = current_region.x1;
  1020. X            tmplreg[nlreg]->inarea.y1 = current_region.y1;
  1021. X            tmplreg[nlreg]->inarea.x2 = current_region.x2;
  1022. X            tmplreg[nlreg]->inarea.y2 = current_region.y2;
  1023. X          } break;
  1024. Xcase 148:
  1025. X# line 1061 "lev_comp.y"
  1026. X{
  1027. X            tmplreg[nlreg]->del_islev = yypvt[-2].i;
  1028. X            tmplreg[nlreg]->delarea.x1 = current_region.x1;
  1029. X            tmplreg[nlreg]->delarea.y1 = current_region.y1;
  1030. X            tmplreg[nlreg]->delarea.x2 = current_region.x2;
  1031. X            tmplreg[nlreg]->delarea.y2 = current_region.y2;
  1032. X            if(yypvt[-0].i)
  1033. X                tmplreg[nlreg]->rtype = LR_UPSTAIR;
  1034. X            else
  1035. X                tmplreg[nlreg]->rtype = LR_DOWNSTAIR;
  1036. X            tmplreg[nlreg]->rname = 0;
  1037. X            nlreg++;
  1038. X          } break;
  1039. Xcase 149:
  1040. X# line 1077 "lev_comp.y"
  1041. X{
  1042. X            tmplreg[nlreg] = New(lev_region);
  1043. X            tmplreg[nlreg]->in_islev = yypvt[-0].i;
  1044. X            tmplreg[nlreg]->inarea.x1 = current_region.x1;
  1045. X            tmplreg[nlreg]->inarea.y1 = current_region.y1;
  1046. X            tmplreg[nlreg]->inarea.x2 = current_region.x2;
  1047. X            tmplreg[nlreg]->inarea.y2 = current_region.y2;
  1048. X          } break;
  1049. Xcase 150:
  1050. X# line 1086 "lev_comp.y"
  1051. X{
  1052. X            tmplreg[nlreg]->del_islev = yypvt[-2].i;
  1053. X            tmplreg[nlreg]->delarea.x1 = current_region.x1;
  1054. X            tmplreg[nlreg]->delarea.y1 = current_region.y1;
  1055. X            tmplreg[nlreg]->delarea.x2 = current_region.x2;
  1056. X            tmplreg[nlreg]->delarea.y2 = current_region.y2;
  1057. X            tmplreg[nlreg]->rtype = LR_PORTAL;
  1058. X            tmplreg[nlreg]->rname = yypvt[-0].map;
  1059. X            nlreg++;
  1060. X          } break;
  1061. Xcase 151:
  1062. X# line 1099 "lev_comp.y"
  1063. X{
  1064. X            tmplreg[nlreg] = New(lev_region);
  1065. X            tmplreg[nlreg]->in_islev = yypvt[-0].i;
  1066. X            tmplreg[nlreg]->inarea.x1 = current_region.x1;
  1067. X            tmplreg[nlreg]->inarea.y1 = current_region.y1;
  1068. X            tmplreg[nlreg]->inarea.x2 = current_region.x2;
  1069. X            tmplreg[nlreg]->inarea.y2 = current_region.y2;
  1070. X          } break;
  1071. Xcase 152:
  1072. X# line 1108 "lev_comp.y"
  1073. X{
  1074. X            tmplreg[nlreg]->del_islev = yypvt[-0].i;
  1075. X            tmplreg[nlreg]->delarea.x1 = current_region.x1;
  1076. X            tmplreg[nlreg]->delarea.y1 = current_region.y1;
  1077. X            tmplreg[nlreg]->delarea.x2 = current_region.x2;
  1078. X            tmplreg[nlreg]->delarea.y2 = current_region.y2;
  1079. X          } break;
  1080. Xcase 153:
  1081. X# line 1116 "lev_comp.y"
  1082. X{
  1083. X            switch(yypvt[-0].i) {
  1084. X            case -1: tmplreg[nlreg]->rtype = LR_TELE; break;
  1085. X            case 0: tmplreg[nlreg]->rtype = LR_DOWNTELE; break;
  1086. X            case 1: tmplreg[nlreg]->rtype = LR_UPTELE; break;
  1087. X            }
  1088. X            tmplreg[nlreg]->rname = 0;
  1089. X            nlreg++;
  1090. X          } break;
  1091. Xcase 154:
  1092. X# line 1128 "lev_comp.y"
  1093. X{
  1094. X            tmplreg[nlreg] = New(lev_region);
  1095. X            tmplreg[nlreg]->in_islev = yypvt[-0].i;
  1096. X            tmplreg[nlreg]->inarea.x1 = current_region.x1;
  1097. X            tmplreg[nlreg]->inarea.y1 = current_region.y1;
  1098. X            tmplreg[nlreg]->inarea.x2 = current_region.x2;
  1099. X            tmplreg[nlreg]->inarea.y2 = current_region.y2;
  1100. X          } break;
  1101. Xcase 155:
  1102. X# line 1137 "lev_comp.y"
  1103. X{
  1104. X            tmplreg[nlreg]->del_islev = yypvt[-0].i;
  1105. X            tmplreg[nlreg]->delarea.x1 = current_region.x1;
  1106. X            tmplreg[nlreg]->delarea.y1 = current_region.y1;
  1107. X            tmplreg[nlreg]->delarea.x2 = current_region.x2;
  1108. X            tmplreg[nlreg]->delarea.y2 = current_region.y2;
  1109. X            tmplreg[nlreg]->rtype = LR_BRANCH;
  1110. X            tmplreg[nlreg]->rname = 0;
  1111. X            nlreg++;
  1112. X          } break;
  1113. Xcase 156:
  1114. X# line 1150 "lev_comp.y"
  1115. X{
  1116. X            yyval.i = -1;
  1117. X          } break;
  1118. Xcase 157:
  1119. X# line 1154 "lev_comp.y"
  1120. X{
  1121. X            yyval.i = yypvt[-0].i;
  1122. X          } break;
  1123. Xcase 158:
  1124. X# line 1160 "lev_comp.y"
  1125. X{
  1126. X            yyval.i = 0;
  1127. X          } break;
  1128. Xcase 159:
  1129. X# line 1164 "lev_comp.y"
  1130. X{
  1131. X/* This series of if statements is a hack for MSC 5.1.  It seems that its
  1132. X   tiny little brain cannot compile if these are all one big if statement. */
  1133. X            if (yypvt[-7].i <= 0 || yypvt[-7].i >= COLNO)
  1134. X                yyerror("Region out of level range!");
  1135. X            else if (yypvt[-5].i < 0 || yypvt[-5].i >= ROWNO)
  1136. X                yyerror("Region out of level range!");
  1137. X            else if (yypvt[-3].i <= 0 || yypvt[-3].i >= COLNO)
  1138. X                yyerror("Region out of level range!");
  1139. X            else if (yypvt[-1].i < 0 || yypvt[-1].i >= ROWNO)
  1140. X                yyerror("Region out of level range!");
  1141. X            current_region.x1 = yypvt[-7].i;
  1142. X            current_region.y1 = yypvt[-5].i;
  1143. X            current_region.x2 = yypvt[-3].i;
  1144. X            current_region.y2 = yypvt[-1].i;
  1145. X            yyval.i = 1;
  1146. X          } break;
  1147. Xcase 160:
  1148. X# line 1184 "lev_comp.y"
  1149. X{
  1150. X            tmpfountain[nfountain] = New(fountain);
  1151. X            tmpfountain[nfountain]->x = current_coord.x;
  1152. X            tmpfountain[nfountain]->y = current_coord.y;
  1153. X            if (!in_room)
  1154. X                check_coord(current_coord.x, current_coord.y,
  1155. X                    "Fountain");
  1156. X            nfountain++;
  1157. X          } break;
  1158. Xcase 161:
  1159. X# line 1196 "lev_comp.y"
  1160. X{
  1161. X            tmpsink[nsink] = New(sink);
  1162. X            tmpsink[nsink]->x = current_coord.x;
  1163. X            tmpsink[nsink]->y = current_coord.y;
  1164. X            nsink++;
  1165. X          } break;
  1166. Xcase 162:
  1167. X# line 1205 "lev_comp.y"
  1168. X{
  1169. X            tmppool[npool] = New(pool);
  1170. X            tmppool[npool]->x = current_coord.x;
  1171. X            tmppool[npool]->y = current_coord.y;
  1172. X            npool++;
  1173. X          } break;
  1174. Xcase 163:
  1175. X# line 1214 "lev_comp.y"
  1176. X{
  1177. X            tmpdig[ndig] = New(digpos);
  1178. X            tmpdig[ndig]->x1 = current_region.x1;
  1179. X            tmpdig[ndig]->y1 = current_region.y1;
  1180. X            tmpdig[ndig]->x2 = current_region.x2;
  1181. X            tmpdig[ndig]->y2 = current_region.y2;
  1182. X            ndig++;
  1183. X          } break;
  1184. Xcase 164:
  1185. X# line 1225 "lev_comp.y"
  1186. X{
  1187. X            tmppass[npass] = New(digpos);
  1188. X            tmppass[npass]->x1 = current_region.x1;
  1189. X            tmppass[npass]->y1 = current_region.y1;
  1190. X            tmppass[npass]->x2 = current_region.x2;
  1191. X            tmppass[npass]->y2 = current_region.y2;
  1192. X            npass++;
  1193. X          } break;
  1194. Xcase 165:
  1195. X# line 1236 "lev_comp.y"
  1196. X{
  1197. X            tmpreg[nreg] = New(region);
  1198. X            tmpreg[nreg]->x1 = current_region.x1;
  1199. X            tmpreg[nreg]->y1 = current_region.y1;
  1200. X            tmpreg[nreg]->x2 = current_region.x2;
  1201. X            tmpreg[nreg]->y2 = current_region.y2;
  1202. X            tmpreg[nreg]->rlit = yypvt[-3].i;
  1203. X            tmpreg[nreg]->rtype = yypvt[-1].i;
  1204. X            if(yypvt[-0].i & 1) tmpreg[nreg]->rtype += MAXRTYPE+1;
  1205. X            tmpreg[nreg]->rirreg = ((yypvt[-0].i & 2) != 0);
  1206. X            if(current_region.x1 > current_region.x2 ||
  1207. X               current_region.y1 > current_region.y2)
  1208. X               yyerror("Region start > end!");
  1209. X            if(tmpreg[nreg]->rtype == VAULT &&
  1210. X               (tmpreg[nreg]->rirreg ||
  1211. X                (tmpreg[nreg]->x2 - tmpreg[nreg]->x1 != 1) ||
  1212. X                (tmpreg[nreg]->y2 - tmpreg[nreg]->y1 != 1)))
  1213. X                yyerror("Vaults must be exactly 2x2!");
  1214. X            if(want_warnings && !tmpreg[nreg]->rirreg &&
  1215. X               current_region.x1 > 0 && current_region.y1 > 0 &&
  1216. X               current_region.x2 < max_x_map &&
  1217. X               current_region.y2 < max_y_map) {
  1218. X                /* check for walls in the room */
  1219. X                char ebuf[60];
  1220. X                register int x, y, nrock = 0;
  1221. X
  1222. X                for(y=current_region.y1; y<=current_region.y2; y++)
  1223. X                for(x=current_region.x1;
  1224. X                    x<=current_region.x2; x++)
  1225. X                    if(IS_ROCK(tmpmap[y][x]) ||
  1226. X                       IS_DOOR(tmpmap[y][x])) nrock++;
  1227. X                if(nrock) {
  1228. X                Sprintf(ebuf,
  1229. X                    "Rock in room (%02d,%02d,%02d,%02d)?!",
  1230. X                    current_region.x1, current_region.y1,
  1231. X                    current_region.x2, current_region.y2);
  1232. X                yywarning(ebuf);
  1233. X                }
  1234. X                if (
  1235. X        !IS_ROCK(tmpmap[current_region.y1-1][current_region.x1-1]) ||
  1236. X        !IS_ROCK(tmpmap[current_region.y2+1][current_region.x1-1]) ||
  1237. X        !IS_ROCK(tmpmap[current_region.y1-1][current_region.x2+1]) ||
  1238. X        !IS_ROCK(tmpmap[current_region.y2+1][current_region.x2+1])) {
  1239. X                Sprintf(ebuf,
  1240. X                "NonRock edge in room (%02d,%02d,%02d,%02d)?!",
  1241. X                    current_region.x1, current_region.y1,
  1242. X                    current_region.x2, current_region.y2);
  1243. X                yywarning(ebuf);
  1244. X                }
  1245. X            } else if(tmpreg[nreg]->rirreg &&
  1246. X        !IS_ROOM(tmpmap[current_region.y1][current_region.x1])) {
  1247. X                char ebuf[60];
  1248. X                Sprintf(ebuf,
  1249. X                    "Rock in irregular room (%02d,%02d)?!",
  1250. X                    current_region.x1, current_region.y1);
  1251. X                yyerror(ebuf);
  1252. X            }
  1253. X            nreg++;
  1254. X          } break;
  1255. Xcase 166:
  1256. X# line 1298 "lev_comp.y"
  1257. X{
  1258. X            tmpaltar[naltar] = New(altar);
  1259. X            tmpaltar[naltar]->x = current_coord.x;
  1260. X            tmpaltar[naltar]->y = current_coord.y;
  1261. X            tmpaltar[naltar]->align = yypvt[-2].i;
  1262. X            tmpaltar[naltar]->shrine = yypvt[-0].i;
  1263. X            if (!in_room)
  1264. X                check_coord(current_coord.x, current_coord.y,
  1265. X                    "Altar");
  1266. X            naltar++;
  1267. X          } break;
  1268. Xcase 167:
  1269. X# line 1312 "lev_comp.y"
  1270. X{
  1271. X            tmpgold[ngold] = New(gold);
  1272. X            tmpgold[ngold]->x = current_coord.x;
  1273. X            tmpgold[ngold]->y = current_coord.y;
  1274. X            tmpgold[ngold]->amount = yypvt[-2].i;
  1275. X            if (!in_room)
  1276. X                check_coord(current_coord.x, current_coord.y,
  1277. X                    "Gold");
  1278. X            ngold++;
  1279. X          } break;
  1280. Xcase 168:
  1281. X# line 1325 "lev_comp.y"
  1282. X{
  1283. X            tmpengraving[nengraving] = New(engraving);
  1284. X            tmpengraving[nengraving]->x = current_coord.x;
  1285. X            tmpengraving[nengraving]->y = current_coord.y;
  1286. X            tmpengraving[nengraving]->e.text = yypvt[-0].map;
  1287. X            tmpengraving[nengraving]->etype = yypvt[-2].i;
  1288. X            if (!in_room)
  1289. X                check_coord(current_coord.x, current_coord.y,
  1290. X                    "Engraving");
  1291. X            nengraving++;
  1292. X          } break;
  1293. Xcase 170:
  1294. X# line 1340 "lev_comp.y"
  1295. X{
  1296. X            yyval.i = - MAX_REGISTERS - 1;
  1297. X          } break;
  1298. Xcase 173:
  1299. X# line 1348 "lev_comp.y"
  1300. X{
  1301. X            yyval.i = - MAX_REGISTERS - 1;
  1302. X          } break;
  1303. Xcase 176:
  1304. X# line 1356 "lev_comp.y"
  1305. X{
  1306. X            yyval.map = (char *) 0;
  1307. X          } break;
  1308. Xcase 178:
  1309. X# line 1363 "lev_comp.y"
  1310. X{
  1311. X            yyval.map = (char *) 0;
  1312. X          } break;
  1313. Xcase 179:
  1314. X# line 1369 "lev_comp.y"
  1315. X{
  1316. X            int token = get_trap_type(yypvt[-0].map);
  1317. X            if (token == ERR)
  1318. X                yyerror("Unknown trap type!");
  1319. X            yyval.i = token;
  1320. X          } break;
  1321. Xcase 181:
  1322. X# line 1379 "lev_comp.y"
  1323. X{
  1324. X            int token = get_room_type(yypvt[-0].map);
  1325. X            if (token == ERR) {
  1326. X                yywarning("Unknown room type!  Making ordinary room...");
  1327. X                yyval.i = OROOM;
  1328. X            } else
  1329. X                yyval.i = token;
  1330. X          } break;
  1331. Xcase 183:
  1332. X# line 1391 "lev_comp.y"
  1333. X{
  1334. X            yyval.i = 0;
  1335. X          } break;
  1336. Xcase 184:
  1337. X# line 1395 "lev_comp.y"
  1338. X{
  1339. X            yyval.i = yypvt[-0].i;
  1340. X          } break;
  1341. Xcase 185:
  1342. X# line 1399 "lev_comp.y"
  1343. X{
  1344. X            yyval.i = yypvt[-2].i + (yypvt[-0].i << 1);
  1345. X          } break;
  1346. Xcase 188:
  1347. X# line 1407 "lev_comp.y"
  1348. X{
  1349. X            current_coord.x = current_coord.y = -MAX_REGISTERS-1;
  1350. X          } break;
  1351. Xcase 195:
  1352. X# line 1423 "lev_comp.y"
  1353. X{
  1354. X            yyval.i = - MAX_REGISTERS - 1;
  1355. X          } break;
  1356. Xcase 198:
  1357. X# line 1433 "lev_comp.y"
  1358. X{
  1359. X            if ( yypvt[-1].i >= MAX_REGISTERS )
  1360. X                yyerror("Register Index overflow!");
  1361. X            else
  1362. X                current_coord.x = current_coord.y = - yypvt[-1].i - 1;
  1363. X          } break;
  1364. Xcase 199:
  1365. X# line 1442 "lev_comp.y"
  1366. X{
  1367. X            if ( yypvt[-1].i >= MAX_REGISTERS )
  1368. X                yyerror("Register Index overflow!");
  1369. X            else
  1370. X                yyval.i = - yypvt[-1].i - 1;
  1371. X          } break;
  1372. Xcase 200:
  1373. X# line 1451 "lev_comp.y"
  1374. X{
  1375. X            if ( yypvt[-1].i >= MAX_REGISTERS )
  1376. X                yyerror("Register Index overflow!");
  1377. X            else
  1378. X                yyval.i = - yypvt[-1].i - 1;
  1379. X          } break;
  1380. Xcase 201:
  1381. X# line 1460 "lev_comp.y"
  1382. X{
  1383. X            if ( yypvt[-1].i >= 3 )
  1384. X                yyerror("Register Index overflow!");
  1385. X            else
  1386. X                yyval.i = - yypvt[-1].i - 1;
  1387. X          } break;
  1388. Xcase 203:
  1389. X# line 1472 "lev_comp.y"
  1390. X{
  1391. X            if (check_monster_char((char) yypvt[-0].i))
  1392. X                yyval.i = yypvt[-0].i ;
  1393. X            else {
  1394. X                yyerror("Unknown monster class!");
  1395. X                yyval.i = ERR;
  1396. X            }
  1397. X          } break;
  1398. Xcase 204:
  1399. X# line 1483 "lev_comp.y"
  1400. X{
  1401. X            char c = yypvt[-0].i;
  1402. X            if (check_object_char(c))
  1403. X                yyval.i = c;
  1404. X            else {
  1405. X                yyerror("Unknown char class!");
  1406. X                yyval.i = ERR;
  1407. X            }
  1408. X          } break;
  1409. Xcase 207:
  1410. X# line 1499 "lev_comp.y"
  1411. X{
  1412. X            yyval.map = (char *) 0;
  1413. X          } break;
  1414. Xcase 212:
  1415. X# line 1513 "lev_comp.y"
  1416. X{
  1417. X            if (!in_room && !init_lev.init_present &&
  1418. X                (yypvt[-3].i < 0 || yypvt[-3].i > max_x_map ||
  1419. X                 yypvt[-1].i < 0 || yypvt[-1].i > max_y_map))
  1420. X                yyerror("Coordinates out of map range!");
  1421. X            current_coord.x = yypvt[-3].i;
  1422. X            current_coord.y = yypvt[-1].i;
  1423. X          } break;
  1424. Xcase 213:
  1425. X# line 1524 "lev_comp.y"
  1426. X{
  1427. X/* This series of if statements is a hack for MSC 5.1.  It seems that its
  1428. X   tiny little brain cannot compile if these are all one big if statement. */
  1429. X            if (yypvt[-7].i < 0 || yypvt[-7].i > max_x_map)
  1430. X                yyerror("Region out of map range!");
  1431. X            else if (yypvt[-5].i < 0 || yypvt[-5].i > max_y_map)
  1432. X                yyerror("Region out of map range!");
  1433. X            else if (yypvt[-3].i < 0 || yypvt[-3].i > max_x_map)
  1434. X                yyerror("Region out of map range!");
  1435. X            else if (yypvt[-1].i < 0 || yypvt[-1].i > max_y_map)
  1436. X                yyerror("Region out of map range!");
  1437. X            current_region.x1 = yypvt[-7].i;
  1438. X            current_region.y1 = yypvt[-5].i;
  1439. X            current_region.x2 = yypvt[-3].i;
  1440. X            current_region.y2 = yypvt[-1].i;
  1441. X          } break;
  1442. X    }
  1443. X    goto yystack;        /* reset registers in driver code */
  1444. X}
  1445. X
  1446. END_OF_FILE
  1447. if test 26312 -ne `wc -c <'sys/share/lev_yacc.c2'`; then
  1448.     echo shar: \"'sys/share/lev_yacc.c2'\" unpacked with wrong size!
  1449. fi
  1450. # end of 'sys/share/lev_yacc.c2'
  1451. echo shar: End of archive 27 \(of 31\).
  1452. cp /dev/null ark27isdone
  1453. MISSING=""
  1454. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ; do
  1455.     if test ! -f ark${I}isdone ; then
  1456.     MISSING="${MISSING} ${I}"
  1457.     fi
  1458. done
  1459. if test "${MISSING}" = "" ; then
  1460.     echo You have unpacked all 31 archives.
  1461.     echo "Now execute 'patchit.sh'"
  1462.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1463. else
  1464.     echo You still need to unpack the following archives:
  1465.     echo "        " ${MISSING}
  1466. fi
  1467. ##  End of shell archive.
  1468. exit 0
  1469.