Annotation of 43BSDReno/games/dungeon/ballop.F, revision 1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.