|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.