1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 RAPPLI(RI)
16 IMPLICIT INTEGER (A-Z)
17 %include dparam
18 LOGICAL QOPEN,QON,QHERE,PROB,F
19 LOGICAL MOVETO,LIT,RMDESC,QEMPTY
20
21
22
23
24 QOPEN(R)=AND(OFLAG2(R),OPENBT).NE.0
25
26 QON(R)=AND(OFLAG1(R),ONBT).NE.0
27
28 IF(RI.EQ.0) RETURN
29 GO TO ( 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000,
30 & 10000,11000,12000,13000,14000,15000,16000,17000,18000,19000,
31 & 20000,21000,22000,23000,24000,25000,26000,27000,28000,29000,
32 & 30000,31000,32000,33000,34000,35000,36000,37000,38000,39000,
33 & 40000,41000,42000,43000,44000,45000,46000,47000,48000,49000,
34 & 50000,51000,52000,53000,54000,55000,56000,57000,58000,59000,
35 & 60000,61000,62000,63000,64000),RI
36 CALL BUG(1,RI)
37
38
39
40
41
42 1000 IF(PRSA.NE.LOOKW) RETURN
43 I=13
44 IF(QOPEN(WINDO)) I=12
45 CALL RSPSUB(11,I)
46 RETURN
47
48
49
50 2000 IF(PRSA.NE.LOOKW) GO TO 2100
51 I=13
52 IF(QOPEN(WINDO)) I=12
53 CALL RSPSUB(14,I)
54 RETURN
55
56 2100 IF((PRSA.NE.WALKIW).OR.DEADF.OR..NOT.BROC1F.OR.BROC2F) RETURN
57 CFLAG(CEVBRO)=.TRUE.
58 CTICK(CEVBRO)=3
59 RETURN
60
61
62
63 3000 IF(PRSA.NE.LOOKW) GO TO 3500
64 I=15
65 IF(MAGICF) I=16
66 CALL RSPEAK(I)
67 I=17+ORRUG
68 IF(QOPEN(DOOR)) I=I+2
69 CALL RSPEAK(I)
70 RETURN
71
72
73
74 3500 IF((PRSA.NE.TAKEW).AND.((PRSA.NE.PUTW).OR.(PRSI.NE.TCASE)))
75 & RETURN
76 ASCORE(WINNER)=RWSCOR
77 DO 3600 I=1,OLNT
78 J=I
79 3550 J=OCAN(J)
80 IF(J.EQ.0) GO TO 3600
81 IF(J.NE.TCASE) GO TO 3550
82 ASCORE(WINNER)=ASCORE(WINNER)+OTVAL(I)
83 3600 CONTINUE
84 CALL SCRUPD(0)
85 RETURN
86
87
88
89
90
91 4000 IF(PRSA.NE.LOOKW) GO TO 4500
92 CALL RSPEAK(21)
93 IF(QOPEN(DOOR)) CALL RSPEAK(623)
94 RETURN
95
96 4500 IF(PRSA.NE.WALKIW) RETURN
97
98 IF(AND(OFLAG2(DOOR),(OPENBT+TCHBT)).NE.OPENBT) RETURN
99
100 OFLAG2(DOOR)=AND(OR(OFLAG2(DOOR),TCHBT), COMPL(OPENBT))
101 CALL RSPEAK(22)
102 RETURN
103
104
105
106 5000 IF(PRSA.NE.LOOKW) RETURN
107 CALL RSPEAK(23)
108 I=24
109 IF(GRUNLF) I=26
110 IF(QOPEN(GRATE)) I=25
111 CALL RSPEAK(I)
112 RETURN
113
114
115
116 6000 IF(PRSA.NE.LOOKW) RETURN
117 CALL RSPEAK(27)
118 I=0
119 IF(RVCLR.NE.0) I=28
120 IF(QOPEN(GRATE)) I=29
121 CALL RSPEAK(I)
122 RETURN
123
124
125
126
127
128 7000 IF(PRSA.NE.LOOKW) RETURN
129 I=31
130 IF(LWTIDF) I=32
131 CALL RSPEAK(I)
132 CALL RSPEAK(33)
133 RETURN
134
135
136
137 8000 IF(PRSA.NE.LOOKW) RETURN
138 I=34
139 IF(LWTIDF) I=35
140 CALL RSPEAK(I)
141 RETURN
142
143
144
145 9000 IF(PRSA.NE.LOOKW) RETURN
146 I=36
147 IF(LWTIDF) I=37
148 CALL RSPEAK(I)
149 CALL RSPEAK(38)
150 RETURN
151
152
153
154 10000 IF(PRSA.NE.LOOKW) RETURN
155 CALL RSPEAK(39)
156 I=0
157 IF(GLACMF) I=40
158 IF(GLACRF) I=41
159 CALL RSPEAK(I)
160 RETURN
161
162
163
164 11000 IF(PRSA.NE.WALKIW) RETURN
165 CFLAG(CEVFOR)=.TRUE.
166 CTICK(CEVFOR)=-1
167 RETURN
168
169
170
171 12000 IF(PRSA.NE.LOOKW) RETURN
172 CALL RSPEAK(42)
173 IF(MIRRMF) CALL RSPEAK(43)
174 RETURN
175
176
177
178
179
180 13000 IF(PRSA.NE.WALKIW) RETURN
181 IF(PROB(50,20).OR.(OADV(CANDL).NE.WINNER).OR.
182 & .NOT.QON(CANDL)) RETURN
183
184 OFLAG1(CANDL)=AND(OFLAG1(CANDL), COMPL(ONBT))
185 CALL RSPEAK(47)
186 CFLAG(CEVCND)=.FALSE.
187 IF(.NOT.LIT(HERE)) CALL RSPEAK(406)
188 RETURN
189
190
191
192 14000 J=ODESC2(CANDL)
193 IF((OADV(CANDL).EQ.WINNER).AND.QON(CANDL)) GO TO 14100
194 J=ODESC2(TORCH)
195 IF((OADV(TORCH).EQ.WINNER).AND.QON(TORCH)) GO TO 14100
196 J=ODESC2(MATCH)
197 IF((OADV(MATCH).EQ.WINNER).AND.QON(MATCH)) GO TO 14100
198 RETURN
199
200 14100 IF((PRSA.NE.TRNONW).AND.(PRSA.NE.BURNW))
201 & GO TO 14200
202 CALL RSPSUB(294,J)
203 CALL JIGSUP(44)
204 RETURN
205
206 14200 IF(PRSA.NE.WALKIW) RETURN
207 CALL RSPSUB(295,J)
208 CALL JIGSUP(44)
209 RETURN
210
211
212
213 15000 EMPTHF=.TRUE.
214 DO 15100 I=1,OLNT
215 IF(OADV(I).EQ.WINNER) EMPTHF=.FALSE.
216 15100 CONTINUE
217
218 IF((HERE.NE.BSHAF).OR.(.NOT.LIT(HERE))) RETURN
219 CALL SCRUPD(LTSHFT)
220 LTSHFT=0
221 RETURN
222
223
224
225
226
227 16000 IF(PRSA.NE.LOOKW) RETURN
228 I=46
229 IF(QOPEN(MACHI)) I=12
230 CALL RSPSUB(45,I)
231 RETURN
232
233
234
235 17000 IF(PRSA.NE.LOOKW) GO TO 17500
236 CALL RSPEAK(48)
237 IF(OADV(GARLI).EQ.WINNER) CALL RSPEAK(49)
238 RETURN
239
240 17500 IF((PRSA.NE.WALKIW).OR.(OADV(GARLI).EQ.WINNER)
241 & .OR.DEADF) RETURN
242 CALL RSPEAK(50)
243 F=MOVETO(BATDRP(RND(9)+1),WINNER)
244 F=RMDESC(0)
245 PRSCON=0
246 RETURN
247
248
249
250 18000 IF(PRSA.NE.LOOKW) GO TO 18500
251 CALL RSPEAK(51)
252 IF(DOMEF) CALL RSPEAK(52)
253 RETURN
254
255 18500 IF(PRSA.EQ.LEAPW) CALL JIGSUP(53)
256 RETURN
257
258
259
260 19000 IF(PRSA.NE.LOOKW) RETURN
261 CALL RSPEAK(54)
262 IF(DOMEF) CALL RSPEAK(55)
263 RETURN
264
265
266
267 20000 IF(PRSA.NE.LOOKW) GO TO 20500
268 CALL RSPEAK(56)
269 IF(.NOT.(CAROFF.OR.DEADF)) CALL RSPEAK(57)
270 RETURN
271
272 20500 IF((PRSA.EQ.WALKIW).AND.CAROZF.AND..NOT.DEADF)
273 & CALL JIGSUP(58)
274 RETURN
275
276
277
278
279
280 21000 IF(PRSA.NE.LOOKW) GO TO 21100
281 CALL RSPEAK(59)
282 IF(.NOT.LLDF) CALL RSPEAK(60)
283 RETURN
284
285 21100 IF(LLDF.OR.(PRSA.NE.RINGW).OR.(PRSO.NE.BELL))
286 & GO TO 21200
287 EXORBF=.TRUE.
288 CALL NEWSTA(BELL,0,0,0,0)
289 CALL NEWSTA(HBELL,967,HERE,0,0)
290 IF(LASTIT.EQ.BELL) LASTIT=HBELL
291 IF(.NOT.QON(CANDL).OR.(OADV(CANDL).NE.WINNER))
292 & GO TO 21150
293 CALL NEWSTA(CANDL,968,HERE,0,0)
294
295 OFLAG1(CANDL)=AND(OFLAG1(CANDL),COMPL(ONBT))
296 CFLAG(CEVCND)=.FALSE.
297 21150 CFLAG(CEVXB)=.TRUE.
298 CTICK(CEVXB)=6
299 CFLAG(CEVXBH)=.TRUE.
300 CTICK(CEVXBH)=20
301 RETURN
302
303
304
305 21200 IF(.NOT.EXORBF.OR.EXORCF.OR.(OADV(CANDL).NE.WINNER).OR.
306 & (AND(OFLAG1(CANDL),ONBT).EQ.0)) GO TO 21300
307 EXORCF=.TRUE.
308 CALL RSPEAK(969)
309 CFLAG(CEVXB)=.FALSE.
310 CFLAG(CEVXC)=.TRUE.
311 CTICK(CEVXC)=3
312 RETURN
313
314 21300 IF(.NOT.EXORCF.OR.(PRSA.NE.READW).OR.(PRSO.NE.BOOK))
315 & GO TO 21400
316 CALL NEWSTA(GHOST,63,0,0,0)
317 LLDF=.TRUE.
318 CFLAG(CEVXC)=.FALSE.
319 RETURN
320
321 21400 IF(PRSA.NE.EXORCW) RETURN
322 IF(LLDF) GO TO 21600
323 IF((OADV(BELL).EQ.WINNER).AND.(OADV(BOOK).EQ.WINNER).AND.
324 & (OADV(CANDL).EQ.WINNER).AND.QON(CANDL)) GO TO 21500
325 CALL RSPEAK(62)
326 RETURN
327
328 21500 CALL RSPEAK(1044)
329 RETURN
330
331 21600 CALL JIGSUP(61)
332 RETURN
333
334
335
336
337
338 22000 IF(PRSA.NE.LOOKW) RETURN
339 CALL RSPEAK(64)
340 IF(ONPOLF) CALL RSPEAK(65)
341 RETURN
342
343
344
345 23000 IF(PRSA.NE.LOOKW) RETURN
346 CALL RSPEAK(66)
347 I=67
348 IF(LWTIDF) I=68
349 CALL RSPEAK(I)
350 CALL RSPEAK(69)
351 IF(GATEF) CALL RSPEAK(70)
352 RETURN
353
354
355
356 24000 IF(PRSA.NE.LOOKW) GO TO 24300
357 CALL RSPEAK(660)
358 I=661
359 DO 24200 J=1,OLNT
360 IF(.NOT.QHERE(J,FORE3).OR.(J.EQ.FTREE)) GO TO 24200
361 CALL RSPEAK(I)
362 I=0
363 CALL RSPSUB(502,ODESC2(J))
364 24200 CONTINUE
365 RETURN
366
367 24300 IF(PRSA.NE.WALKIW) GO TO 24400
368 CFLAG(CEVFOR)=.TRUE.
369 CTICK(CEVFOR)=-1
370 RETURN
371
372 24400 IF((PRSA.NE.DROPW).AND.(PRSA.NE.THROWW).AND.(PRSA.NE.SHAKEW))
373 & RETURN
374 DO 24600 I=1,OLNT
375 IF((I.EQ.TTREE).OR.(I.EQ.NEST).OR.
376 & .NOT.QHERE(I,HERE)) GO TO 24600
377 IF(I.EQ.EGG) GO TO 24500
378 CALL NEWSTA(I,0,FORE3,0,0)
379 CALL RSPSUB(659,ODESC2(I))
380 GO TO 24600
381
382 24500 CALL NEWSTA(EGG,0,0,0,0)
383 CALL NEWSTA(BEGG,658,FORE3,0,0)
384 IF(LASTIT.EQ.EGG) LASTIT=BEGG
385 OTVAL(BEGG)=2
386 IF(OCAN(CANAR).NE.EGG) GO TO 24550
387 OTVAL(BCANA)=1
388 GO TO 24600
389 24550 CALL NEWSTA(BCANA,0,0,0,0)
390 24600 CONTINUE
391 RETURN
392
393
394
395
396
397 25000 IF(PRSA.NE.LOOKW) GO TO 25100
398 CALL RSPEAK(606)
399 I=607
400 IF(RVCYC.GT.0) I=608
401 IF(RVCYC.LT.0) I=609
402 IF(CYCLOF) I=610
403 IF(MAGICF) I=611
404 CALL RSPEAK(I)
405 RETURN
406
407 25100 IF((PRSA.NE.WALKIW).OR.(RVCYC.EQ.0).OR.DEADF) RETURN
408 CFLAG(CEVCYC)=.TRUE.
409 CTICK(CEVCYC)=-1
410 RETURN
411
412
413
414 26000 IF(PRSA.NE.WALKIW) RETURN
415 DO 26100 I=1,8,2
416 IF(FROMDR.EQ.SCOLDR(I)) SCOLRM=SCOLDR(I+1)
417 26100 CONTINUE
418 RETURN
419
420
421
422 27000 IF((PRSA.NE.WALKIW).OR.DEADF.OR..NOT.THFACT)
423 & RETURN
424 IF(OROOM(THIEF).NE.HERE)
425 & CALL NEWSTA(THIEF,82,HERE,0,0)
426 THFPOS=HERE
427
428 OFLAG2(THIEF)=OR(OFLAG2(THIEF),FITEBT)
429
430
431
432 J=0
433 DO 27200 I=1,OLNT
434 IF((I.EQ.CHALI).OR.(I.EQ.THIEF).OR..NOT.QHERE(I,HERE))
435 & GO TO 27200
436 J=83
437
438 OFLAG1(I)=AND(OFLAG1(I),COMPL(VISIBT))
439 27200 CONTINUE
440 CALL RSPEAK(J)
441 RETURN
442
443
444
445 28000 DEFLAF=OADV(RBOAT).NE.WINNER
446 RETURN
447
448
449
450
451
452 29000 IF(BUOYF.OR.(OADV(BUOY).NE.WINNER)) RETURN
453 CALL RSPEAK(84)
454 BUOYF=.TRUE.
455 RETURN
456
457
458
459 30000 IF(PRSA.NE.LOOKW) CALL JIGSUP(85)
460 RETURN
461
462
463
464 31000 IF(PRSA.NE.WALKIW) RETURN
465 CFLAG(CEVSLI)=.FALSE.
466 RETURN
467
468
469
470 32000 IF(PRSA.NE.LOOKW) RETURN
471 CALL RSPEAK(1012)
472 IF(TTIE.EQ.0) RETURN
473 IF(OROOM(TTIE).EQ.HERE) CALL RSPSUB(1013,ODESC2(TTIE))
474 RETURN
475
476
477
478 33000 IF(PRSA.NE.LOOKW) RETURN
479 CALL RSPEAK(96)
480 I=97
481 IF(RAINBF) I=98
482 CALL RSPEAK(I)
483 RETURN
484
485
486
487
488
489 34000 IF(PRSA.NE.LOOKW) RETURN
490 CALL RSPEAK(100)
491 I=102
492
493 IF(AND(RFLAG(MSAFE),RMUNG).NE.0) I=101
494 CALL RSPEAK(I)
495 RETURN
496
497
498
499 35000 IF(PRSA.NE.LOOKW) RETURN
500 CALL RSPEAK(104)
501 I=105
502 IF(SAFEF) I=106
503 CALL RSPEAK(I)
504 RETURN
505
506
507
508 36000 IF(PRSA.NE.LOOKW) GO TO 36500
509 CALL RSPEAK(107)
510 RETURN
511
512 36500 IF((PRSA.NE.WALKIW).OR.DEADF.OR..NOT.CAROFF) RETURN
513 IF(CAROZF) GO TO 36600
514 IF(WINNER.EQ.PLAYER) CALL RSPEAK(108)
515 RETURN
516
517 36600 I=58
518 IF(WINNER.NE.PLAYER) I=99
519 CALL JIGSUP(I)
520 RETURN
521
522
523
524 37000 IF(CAGESF) F=MOVETO(CAGER,WINNER)
525 RETURN
526
527
528
529
530
531 38000 IF(PRSA.EQ.LOOKW) CALL LOOKTO(FDOOR,MRG,0,682,681)
532 RETURN
533
534
535
536 39000 IF(PRSA.EQ.WALKIW) CALL JIGSUP(685)
537 RETURN
538
539
540
541 40000 IF(PRSA.EQ.LOOKW) CALL LOOKTO(MRG,MRB,683,0,681)
542 RETURN
543
544
545
546 41000 IF(PRSA.EQ.LOOKW) CALL LOOKTO(MRC,MRA,0,0,681)
547 RETURN
548
549
550
551 42000 IF(PRSA.EQ.LOOKW) CALL LOOKTO(MRB,0,0,684,681)
552 RETURN
553
554
555
556
557
558 43000 IF(PRSA.EQ.LOOKW) CALL EWTELL(HERE,683)
559 RETURN
560
561
562
563 44000 IF(PRSA.EQ.LOOKW) CALL EWTELL(HERE,686)
564 RETURN
565
566
567
568 45000 IF(PRSA.EQ.LOOKW) CALL EWTELL(HERE,687)
569 RETURN
570
571
572
573 46000 IF(PRSA.NE.LOOKW) RETURN
574 CALL RSPEAK(688)
575
576
577
578
579
580
581
582 I=689
583 IF((MDIR.EQ.270).AND.(MLOC.EQ.MRB))
584 & I=690+MIN0(POLEUF,1)
585 IF(MOD(MDIR,180).EQ.0)
586 & I=692+MIN0(POLEUF,1)
587 CALL RSPEAK(I)
588 CALL RSPSUB(694,695+(MDIR/45))
589 RETURN
590
591
592
593
594
595 47000 IF(PRSA.NE.LOOKW) RETURN
596 I=704
597 DO 47100 J=1,OLNT
598 IF(QHERE(J,HERE).AND.(J.NE.RBEAM)) GO TO 47200
599 47100 CONTINUE
600 I=703
601 47200 CALL RSPSUB(I,ODESC2(J))
602 CALL LOOKTO(MRA,0,0,0,0)
603 RETURN
604
605
606
607 48000 IF(PRSA.NE.LOOKW) RETURN
608 I=46
609 IF(QOPEN(TOMB)) I=12
610 CALL RSPSUB(705,I)
611 RETURN
612
613
614
615 49000 IF(PRSA.NE.LOOKW) RETURN
616 CALL RSPEAK(706)
617 I=46
618 IF(QOPEN(ODOOR)) I=12
619 IF(LCELL.EQ.4) CALL RSPSUB(707,I)
620 RETURN
621
622
623
624 50000 IF(PRSA.NE.WALKIW) GO TO 50100
625 CFLAG(CEVFOL)=.TRUE.
626 CTICK(CEVFOL)=-1
627 RETURN
628
629 50100 IF(PRSA.NE.LOOKW) RETURN
630 I=46
631 IF(QOPEN(QDOOR)) I=12
632 CALL RSPSUB(708,I)
633 RETURN
634
635
636
637
638
639 51000 IF(PRSA.EQ.WALKIW) CTICK(CEVFOL)=0
640 IF(PRSA.NE.LOOKW) RETURN
641 CALL LOOKTO(0,MRD,709,0,0)
642 I=46
643 IF(CFLAG(CEVINQ).AND.(CTICK(CEVINQ).NE.0)) I=12
644 J=46
645 IF(QOPEN(QDOOR)) J=12
646 CALL RSPSB2(710,I,J)
647 RETURN
648
649
650
651 52000 IF(PRSA.NE.LOOKW) RETURN
652 I=46
653 IF(QOPEN(CDOOR)) I=12
654 CALL RSPSUB(711,I)
655 RETURN
656
657
658
659 53000 IF(PRSA.EQ.LOOKW) CALL RSPSUB(712,712+PNUMB)
660 RETURN
661
662
663
664 54000 IF(PRSA.NE.LOOKW) RETURN
665 I=721
666 IF(QOPEN(CDOOR)) I=722
667 CALL RSPEAK(I)
668 I=46
669 IF(QOPEN(ODOOR)) I=12
670 IF(LCELL.EQ.4) CALL RSPSUB(723,I)
671 RETURN
672
673
674
675 55000 IF(PRSA.EQ.LOOKW) CALL RSPEAK(724)
676 RETURN
677
678
679
680 56000 IF(PRSA.NE.LOOKW) RETURN
681 I=46
682 IF(QOPEN(ODOOR)) I=12
683 CALL RSPSUB(725,I)
684 RETURN
685
686
687
688
689
690 57000 IF(PRSA.NE.WALKIW) RETURN
691 PAUSE '--More--'
692 CALL RSPEAK(726)
693 PAUSE '--More--'
694 CALL SCORE(.FALSE.)
695 CALL EXIT
696
697
698
699 58000 IF(PRSA.NE.LOOKW) RETURN
700 I=46
701 IF(QOPEN(TOMB)) I=12
702 CALL RSPSUB(792,I)
703 RETURN
704
705
706
707 59000 IF(PRSA.NE.LOOKW) RETURN
708 I=861
709 IF(CPOUTF) I=862
710 CALL RSPEAK(I)
711 RETURN
712
713
714
715 60000 IF(PRSA.NE.LOOKW) RETURN
716 IF(CPUSHF) GO TO 60100
717 CALL RSPEAK(868)
718
719 IF((AND(OFLAG2(WARNI),TCHBT)).NE.0) CALL RSPEAK(869)
720 RETURN
721
722 60100 CALL CPINFO(880,CPHERE)
723 RETURN
724
725
726
727
728
729 61000 IF(PRSA.NE.LOOKW) GO TO 62400
730 CALL RSPEAK(1015)
731 I=699
732 GO TO 62100
733
734
735
736 62000 IF(PRSA.NE.LOOKW) GO TO 62400
737 CALL RSPEAK(1016)
738 I=695
739
740 62100 IF(PLOOKF) GO TO 62400
741 CALL RSPSUB(1017,I)
742 I=1018
743 IF(.NOT.QOPEN(HERE-PRM+PLID1)) I=1019
744 CALL RSPEAK(I)
745 DO 62200 I=1,OLNT
746 IF(OCAN(I).NE.(HERE-PRM+PKH1)) GO TO 62200
747 CALL RSPSUB(1020,ODESC2(I))
748 GO TO 62300
749 62200 CONTINUE
750
751 62300 IF(QOPEN(PDOOR)) CALL RSPEAK(1042)
752 IF(.NOT.MATF) GO TO 62400
753 CALL RSPEAK(1021)
754 IF((MATOBJ.NE.0).AND.((HERE.EQ.PALRM).OR.QOPEN(PDOOR)))
755 & CALL RSPSUB(1022,ODESC2(MATOBJ))
756 GO TO 62400
757
758 62400 PLOOKF=.FALSE.
759 IF(PRSO.EQ.0) RETURN
760 IF((PRSA.NE.TAKEW).OR..NOT.QEMPTY(HERE-PRM+PKH1).OR.
761 & ((PRSO.NE.SCREW).AND.(PRSO.NE.STICK).AND.
762 & (PRSO.NE.PKEY).AND.(PRSO.NE.KEYS))) GO TO 62500
763 IF(.NOT.PTOUCF) GO TO 62450
764 IF(QOPEN(HERE-PRM+PLID1)) CALL RSPEAK(1043)
765
766 OFLAG2(HERE-PRM+PLID1)=AND(OFLAG2(HERE-PRM+PLID1),COMPL(OPENBT))
767 62450 PTOUCF=.TRUE.
768
769
770 62500 OFLAG1(SCREW)=AND(OFLAG1(SCREW),COMPL(NDSCBT))
771
772
773 IF((OCAN(SCREW).EQ.PKH1).OR.(OCAN(SCREW).EQ.PKH2))
774 & OFLAG1(SCREW)=OR(OFLAG1(SCREW),NDSCBT)
775
776 OFLAG1(STICK)=AND(OFLAG1(STICK),COMPL(NDSCBT))
777
778
779 IF((OCAN(STICK).EQ.PKH1).OR.(OCAN(STICK).EQ.PKH2))
780 & OFLAG1(STICK)=OR(OFLAG1(STICK),NDSCBT)
781
782 OFLAG1(PKEY)=AND(OFLAG1(PKEY),COMPL(NDSCBT))
783
784
785 IF((OCAN(PKEY).EQ.PKH1).OR.(OCAN(PKEY).EQ.PKH2))
786 & OFLAG1(PKEY)=OR(OFLAG1(PKEY),NDSCBT)
787
788 OFLAG1(KEYS)=AND(OFLAG1(KEYS),COMPL(NDSCBT))
789
790
791 IF((OCAN(KEYS).EQ.PKH1).OR.(OCAN(KEYS).EQ.PKH2))
792 & OFLAG1(KEYS)=OR(OFLAG1(KEYS),NDSCBT)
793 IF((OROOM(MAT).NE.PRM).AND.(OROOM(MAT).NE.PALRM)) MATF=.FALSE.
794
795 OFLAG1(MAT)=AND(OFLAG1(MAT),COMPL(NDSCBT))
796 IF(.NOT.MATF) RETURN
797
798 OFLAG1(MAT)=OR(OFLAG1(MAT),NDSCBT)
799 CALL NEWSTA(MAT,0,HERE,0,0)
800 RETURN
801
802
803
804
805
806 63000 DO 63100 I=1,OLNT
807
808
809 IF(.NOT.QHERE(I,HERE).OR.
810 & (AND(OFLAG1(I),TAKEBT).EQ.0)) GO TO 63100
811 CALL NEWSTA(I,0,CELLA,0,0)
812 IF(I.EQ.WATER) CALL NEWSTA(I,0,0,0,0)
813 CALL RSPSUB(1011,ODESC2(I))
814 63100 CONTINUE
815 RETURN
816
817
818
819 64000 IF(PRSA.NE.LOOKW) RETURN
820 I=1068
821 IF(CPVEC(10).NE.0) I=1069
822 CALL RSPEAK(I)
823 RETURN
824
825
826
827
828
829
830
831 LOOKTO(NRM,SRM,NT,ST,HT)
832 IMPLICIT INTEGER (A-Z)
833 %include dparam
834
835 CALL RSPEAK(HT)
836 CALL RSPEAK(NT)
837 CALL RSPEAK(ST)
838 DIR=0
839 IF(IABS(MLOC-HERE).NE.1) GO TO 200
840 IF(MLOC.EQ.NRM) DIR=695
841 IF(MLOC.EQ.SRM) DIR=699
842 IF(MOD(MDIR,180).NE.0) GO TO 100
843 CALL RSPSUB(847,DIR)
844 CALL RSPSB2(848,DIR,DIR)
845 GO TO 200
846
847 100 M1=MRHERE(HERE)
848 MRBF=0
849 IF(((M1.EQ.1).AND..NOT.MR1F).OR.
850 & ((M1.EQ.2).AND..NOT.MR2F)) MRBF=1
851 CALL RSPSUB(849+MRBF,DIR)
852 IF((M1.EQ.1).AND.MROPNF) CALL RSPEAK(823+MRBF)
853 IF(MRBF.NE.0) CALL RSPEAK(851)
854
855 200 I=0
856 IF((NT.EQ.0).AND.((DIR.EQ.0).OR.(DIR.EQ.699))) I=852
857 IF((ST.EQ.0).AND.((DIR.EQ.0).OR.(DIR.EQ.695))) I=853
858 IF((NT+ST+DIR).EQ.0) I=854
859 IF(HT.NE.0) CALL RSPEAK(I)
860 RETURN
861
862
863
864
865
866
867
868 EWTELL(RM,ST)
869 IMPLICIT INTEGER (A-Z)
870 %include dparam
871 LOGICAL M1
872
873 Note
874
875
876 M1=(MDIR+(MOD(RM-MRAE,2)*180)).EQ.180
877 I=MOD(RM-MRAE,2)
878 IF((M1.AND..NOT.MR1F).OR.(.NOT.M1.AND..NOT.MR2F))
879 & I=I+2
880 CALL RSPEAK(819+I)
881 IF(M1.AND.MROPNF) CALL RSPEAK(823+(I/2))
882 CALL RSPEAK(825)
883 CALL RSPEAK(ST)
884 RETURN
885
886