Add -g flag for source file debugging.
[unix-history] / usr / src / contrib / dungeon / ballop.F
CommitLineData
8b22683c
KB
1C BALLOP- BALLOON FUNCTION
2C
3C COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142
4C ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED
5C WRITTEN BY R. M. SUPNIK
6C
7C DECLARATIONS
8C
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"
26C BALLOP, PAGE 2
27C
28 BALLOP=.TRUE.
29C !ASSUME WINS.
30 IF(ARG.NE.2) GO TO 200
31C !READOUT?
32 IF(PRSA.NE.LOOKW) GO TO 10
33C !ONLY PROCESS LOOK.
34 IF(BINFF.NE.0) GO TO 50
35C !INFLATED?
36 CALL RSPEAK(543)
37C !NO.
38 GO TO 100
3950 CALL RSPSUB(544,ODESC2(BINFF))
40C !YES.
41100 IF(BTIEF.NE.0) CALL RSPEAK(545)
42C !HOOKED?
43 RETURN
44C
45200 IF(ARG.NE.1) GO TO 500
46C !READIN?
47 IF(PRSA.NE.WALKW) GO TO 300
48C !WALK?
49 IF(FINDXT(PRSO,HERE)) GO TO 250
50C !VALID EXIT?
51 CALL RSPEAK(546)
52C !NO, JOKE.
53 RETURN
54C
55250 IF(BTIEF.EQ.0) GO TO 275
56C !TIED UP?
57 CALL RSPEAK(547)
58C !YES, JOKE.
59 RETURN
60C
61275 IF(XTYPE.NE.XNORM) GO TO 10
62C !NORMAL EXIT?
63 IF(and(RFLAG(XROOM1),RMUNG).EQ.0) BLOC=XROOM1
6410 BALLOP=.FALSE.
65 RETURN
66C
67300 IF((PRSA.NE.TAKEW).OR.(PRSO.NE.BINFF)) GO TO 350
68 CALL RSPSUB(548,ODESC2(BINFF))
69C !RECEP CONT TOO HOT.
70 RETURN
71C
72350 IF((PRSA.NE.PUTW).OR.(PRSI.NE.RECEP).OR.QEMPTY(RECEP))
73& GO TO 10
74 CALL RSPEAK(549)
75 RETURN
76C
77500 IF((PRSA.NE.UNBOAW).OR.(and(RFLAG(HERE),RLAND).EQ.0))
78& GO TO 600
79 IF(BINFF.NE.0) CTICK(CEVBAL)=3
80C !HE GOT OUT, START BALLOON.
81 GO TO 10
82C
83600 IF((PRSA.NE.BURNW).OR.(OCAN(PRSO).NE.RECEP)) GO TO 700
84 CALL RSPSUB(550,ODESC2(PRSO))
85C !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
96C
97700 IF((PRSA.EQ.UNBOAW).AND.(BINFF.NE.0).AND.
98& (and(RFLAG(HERE),RLAND).NE.0))
99& CTICK(CEVBAL)=3
100 GO TO 10
101C
102 END