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
Last modified: 1988-10-21
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1931
Valid CSS Valid XHTML 1.0 Strict