|
|
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.