|
|
1.1 root 1: C BALLOP- BALLOON FUNCTION
2: C
3: C COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142
4: C ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED
5: C WRITTEN BY R. M. SUPNIK
6: C
7: C DECLARATIONS
8: C
9: LOGICAL FUNCTION BALLOP(ARG)
10: IMPLICIT INTEGER (A-Z)
11: LOGICAL FINDXT,QEMPTY
12: #include "parser.h"
13: #include "gamestate.h"
14: #include "state.h"
15: #include "rooms.h"
16: #include "rflag.h"
17: #include "curxt.h"
18: #include "xpars.h"
19: #include "objects.h"
20: #include "oflags.h"
21: #include "oindex.h"
22: #include "clock.h"
23:
24: #include "verbs.h"
25: #include "flags.h"
26: C BALLOP, PAGE 2
27: C
28: BALLOP=.TRUE.
29: C !ASSUME WINS.
30: IF(ARG.NE.2) GO TO 200
31: C !READOUT?
32: IF(PRSA.NE.LOOKW) GO TO 10
33: C !ONLY PROCESS LOOK.
34: IF(BINFF.NE.0) GO TO 50
35: C !INFLATED?
36: CALL RSPEAK(543)
37: C !NO.
38: GO TO 100
39: 50 CALL RSPSUB(544,ODESC2(BINFF))
40: C !YES.
41: 100 IF(BTIEF.NE.0) CALL RSPEAK(545)
42: C !HOOKED?
43: RETURN
44: C
45: 200 IF(ARG.NE.1) GO TO 500
46: C !READIN?
47: IF(PRSA.NE.WALKW) GO TO 300
48: C !WALK?
49: IF(FINDXT(PRSO,HERE)) GO TO 250
50: C !VALID EXIT?
51: CALL RSPEAK(546)
52: C !NO, JOKE.
53: RETURN
54: C
55: 250 IF(BTIEF.EQ.0) GO TO 275
56: C !TIED UP?
57: CALL RSPEAK(547)
58: C !YES, JOKE.
59: RETURN
60: C
61: 275 IF(XTYPE.NE.XNORM) GO TO 10
62: C !NORMAL EXIT?
63: IF(and(RFLAG(XROOM1),RMUNG).EQ.0) BLOC=XROOM1
64: 10 BALLOP=.FALSE.
65: RETURN
66: C
67: 300 IF((PRSA.NE.TAKEW).OR.(PRSO.NE.BINFF)) GO TO 350
68: CALL RSPSUB(548,ODESC2(BINFF))
69: C !RECEP CONT TOO HOT.
70: RETURN
71: C
72: 350 IF((PRSA.NE.PUTW).OR.(PRSI.NE.RECEP).OR.QEMPTY(RECEP))
73: & GO TO 10
74: CALL RSPEAK(549)
75: RETURN
76: C
77: 500 IF((PRSA.NE.UNBOAW).OR.(and(RFLAG(HERE),RLAND).EQ.0))
78: & GO TO 600
79: IF(BINFF.NE.0) CTICK(CEVBAL)=3
80: C !HE GOT OUT, START BALLOON.
81: GO TO 10
82: C
83: 600 IF((PRSA.NE.BURNW).OR.(OCAN(PRSO).NE.RECEP)) GO TO 700
84: CALL RSPSUB(550,ODESC2(PRSO))
85: C !LIGHT FIRE IN RECEP.
86: CTICK(CEVBRN)=OSIZE(PRSO)*20
87: OFLAG1(PRSO)=or(OFLAG1(PRSO),
88: & and((ONBT+FLAMBT+LITEBT), not(TAKEBT+READBT)))
89: IF(BINFF.NE.0) RETURN
90: IF(.NOT.BLABF) CALL NEWSTA(BLABE,0,0,BALLO,0)
91: BLABF=.TRUE.
92: BINFF=PRSO
93: CTICK(CEVBAL)=3
94: CALL RSPEAK(551)
95: RETURN
96: C
97: 700 IF((PRSA.EQ.UNBOAW).AND.(BINFF.NE.0).AND.
98: & (and(RFLAG(HERE),RLAND).NE.0))
99: & CTICK(CEVBAL)=3
100: GO TO 10
101: C
102: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.