Annotation of 43BSDReno/games/dungeon/dso1.F, revision 1.1.1.1

1.1       root        1: C PRINCR- PRINT CONTENTS OF ROOM
                      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:        SUBROUTINE PRINCR(FULL,RM)
                     10:        IMPLICIT INTEGER (A-Z)
                     11:        LOGICAL QEMPTY,QHERE,FULL
                     12: #include "gamestate.h"
                     13: #include "rooms.h"
                     14: #include "rflag.h"
                     15: C
                     16: #include "objects.h"
                     17: #include "oflags.h"
                     18: #include "oindex.h"
                     19: #include "advers.h"
                     20: #include "flags.h"
                     21: C PRINCR, PAGE 2
                     22: C
                     23:        J=329
                     24: C                                              !ASSUME SUPERBRIEF FORMAT.
                     25:        DO 500 I=1,OLNT
                     26: C                                              !LOOP ON OBJECTS
                     27:          IF(.NOT.QHERE(I,RM).OR.(and(OFLAG1(I),(VISIBT+NDSCBT)).NE.
                     28: &              VISIBT).OR.(I.EQ.AVEHIC(WINNER))) GO TO 500
                     29:          IF(.NOT.FULL.AND.(SUPERF.OR.(BRIEFF.AND.
                     30: &              (and(RFLAG(HERE),RSEEN).NE.0)))) GO TO 200
                     31: C
                     32: C DO LONG DESCRIPTION OF OBJECT.
                     33: C
                     34:          K=ODESCO(I)
                     35: C                                              !GET UNTOUCHED.
                     36:          IF((K.EQ.0).OR.(and(OFLAG2(I),TCHBT).NE.0)) K=ODESC1(I)
                     37:          CALL RSPEAK(K)
                     38: C                                              !DESCRIBE.
                     39:          GO TO 500
                     40: C DO SHORT DESCRIPTION OF OBJECT.
                     41: C
                     42: 200      CALL RSPSUB(J,ODESC2(I))
                     43: C                                              !YOU CAN SEE IT.
                     44:          J=502
                     45: C
                     46: 500    CONTINUE
                     47: C
                     48: C NOW LOOP TO PRINT CONTENTS OF OBJECTS IN ROOM.
                     49: C
                     50:        DO 1000 I=1,OLNT
                     51: C                                              !LOOP ON OBJECTS.
                     52:          IF(.NOT.QHERE(I,RM).OR.(and(OFLAG1(I),(VISIBT+NDSCBT)).NE.
                     53: &              VISIBT)) GO TO 1000
                     54:          IF(and(OFLAG2(I),ACTRBT).NE.0) CALL INVENT(OACTOR(I))
                     55:          IF(((and(OFLAG1(I),TRANBT).EQ.0)
                     56: &              .AND.(and(OFLAG2(I),OPENBT).EQ.0))
                     57: &              .OR.QEMPTY(I)) GO TO 1000
                     58: C
                     59: C OBJECT IS NOT EMPTY AND IS OPEN OR TRANSPARENT.
                     60: C
                     61:          J=573
                     62:          IF(I.NE.TCASE) GO TO 600
                     63: C                                              !TROPHY CASE?
                     64:          J=574
                     65:          IF((BRIEFF.OR.SUPERF).AND. .NOT.FULL) GO TO 1000
                     66: 600      CALL PRINCO(I,J)
                     67: C                                              !PRINT CONTENTS.
                     68: C
                     69: 1000   CONTINUE
                     70:        RETURN
                     71: C
                     72:        END
                     73: C INVENT- PRINT CONTENTS OF ADVENTURER
                     74: C
                     75: C DECLARATIONS
                     76: C
                     77:        SUBROUTINE INVENT(ADV)
                     78:        IMPLICIT INTEGER (A-Z)
                     79:        LOGICAL QEMPTY
                     80: #include "gamestate.h"
                     81: #include "objects.h"
                     82: #include "oflags.h"
                     83: C
                     84: #include "advers.h"
                     85: C INVENT, PAGE 2
                     86: C
                     87:        I=575
                     88: C                                              !FIRST LINE.
                     89:        IF(ADV.NE.PLAYER) I=576
                     90: C                                              !IF NOT ME.
                     91:        DO 10 J=1,OLNT
                     92: C                                              !LOOP
                     93:          IF((OADV(J).NE.ADV).OR.(and(OFLAG1(J),VISIBT).EQ.0))
                     94: &              GO TO 10
                     95:          CALL RSPSUB(I,ODESC2(AOBJ(ADV)))
                     96:          I=0
                     97:          CALL RSPSUB(502,ODESC2(J))
                     98: 10     CONTINUE
                     99: C
                    100:        IF(I.EQ.0) GO TO 25
                    101: C                                              !ANY OBJECTS?
                    102:        IF(ADV.EQ.PLAYER) CALL RSPEAK(578)
                    103: C                                              !NO, TELL HIM.
                    104:        RETURN
                    105: C
                    106: 25     DO 100 J=1,OLNT
                    107: C                                              !LOOP.
                    108:          IF((OADV(J).NE.ADV).OR.(and(OFLAG1(J),VISIBT).EQ.0).OR.
                    109: &              ((and(OFLAG1(J),TRANBT).EQ.0).AND.
                    110: &              (and(OFLAG2(J),OPENBT).EQ.0))) GO TO 100
                    111:          IF(.NOT.QEMPTY(J)) CALL PRINCO(J,573)
                    112: C                                              !IF NOT EMPTY, LIST.
                    113: 100    CONTINUE
                    114:        RETURN
                    115: C
                    116:        END
                    117: C PRINCO-      PRINT CONTENTS OF OBJECT
                    118: C
                    119: C DECLARATIONS
                    120: C
                    121:        SUBROUTINE PRINCO(OBJ,DESC)
                    122:        IMPLICIT INTEGER(A-Z)
                    123: #include "objects.h"
                    124: C
                    125:        CALL RSPSUB(DESC,ODESC2(OBJ))
                    126: C                                              !PRINT HEADER.
                    127:        DO 100 I=1,OLNT
                    128: C                                              !LOOP THRU.
                    129:          IF(OCAN(I).EQ.OBJ) CALL RSPSUB(502,ODESC2(I))
                    130: 100    CONTINUE
                    131:        RETURN
                    132: C
                    133:        END

unix.superglobalmegacorp.com

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