|
|
1.1 ! root 1: C GHERE-- IS GLOBAL ACTUALLY IN THIS 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: LOGICAL FUNCTION GHERE(OBJ,RM) ! 10: IMPLICIT INTEGER(A-Z) ! 11: #include "rooms.h" ! 12: #include "rflag.h" ! 13: #include "rindex.h" ! 14: C ! 15: COMMON /STAR/ MBASE,STRBIT ! 16: C GHERE, PAGE 2 ! 17: C ! 18: GHERE=.TRUE. ! 19: C !ASSUME WINS. ! 20: GO TO (1000,1000,1000,1000,1000,1000, ! 21: & 1000,1000,1000,1000,1000, ! 22: & 2000,3000,4000,5000,5000,5000,6000, ! 23: & 7000,8000,9000,9100,8000,10000,11000),OBJ-STRBIT ! 24: CALL BUG(60,OBJ) ! 25: C ! 26: C 1000-- STARS ARE ALWAYS HERE ! 27: C ! 28: 1000 RETURN ! 29: C ! 30: C 2000-- BIRD ! 31: C ! 32: 2000 GHERE=((RM.GE.FORE1).AND.(RM.LT.CLEAR)).OR.(RM.EQ.MTREE) ! 33: RETURN ! 34: C ! 35: C 3000-- TREE ! 36: C ! 37: 3000 GHERE=((RM.GE.FORE1).AND.(RM.LT.CLEAR)).AND.(RM.NE.FORE3) ! 38: RETURN ! 39: C ! 40: C 4000-- NORTH WALL ! 41: C ! 42: 4000 GHERE=((RM.GE.BKVW).AND.(RM.LE.BKBOX)).OR.(RM.EQ.CPUZZ) ! 43: RETURN ! 44: C ! 45: C 5000-- EAST, SOUTH, WEST WALLS ! 46: C ! 47: 5000 GHERE=((RM.GE.BKVW).AND.(RM.LT.BKBOX)).OR.(RM.EQ.CPUZZ) ! 48: RETURN ! 49: C ! 50: C 6000-- GLOBAL WATER ! 51: C ! 52: 6000 GHERE=and(RFLAG(RM),(RWATER+RFILL)).NE.0 ! 53: RETURN ! 54: C ! 55: C 7000-- GLOBAL GUARDIANS ! 56: C ! 57: 7000 GHERE=((RM.GE.MRC).AND.(RM.LE.MRD)).OR. ! 58: & ((RM.GE.MRCE).AND.(RM.LE.MRDW)).OR.(RM.EQ.INMIR) ! 59: RETURN ! 60: C ! 61: C 8000-- ROSE/CHANNEL ! 62: C ! 63: 8000 GHERE=((RM.GE.MRA).AND.(RM.LE.MRD)).OR.(RM.EQ.INMIR) ! 64: RETURN ! 65: C ! 66: C 9000-- MIRROR ! 67: C 9100 PANEL ! 68: C ! 69: 9100 IF(RM.EQ.FDOOR) RETURN ! 70: C !PANEL AT FDOOR. ! 71: 9000 GHERE=((RM.GE.MRA).AND.(RM.LE.MRC)).OR. ! 72: & ((RM.GE.MRAE).AND.(RM.LE.MRCW)) ! 73: RETURN ! 74: C ! 75: C 10000-- MASTER ! 76: C ! 77: 10000 GHERE=(RM.EQ.FDOOR).OR.(RM.EQ.NCORR).OR.(RM.EQ.PARAP).OR. ! 78: & (RM.EQ.CELL) ! 79: RETURN ! 80: C ! 81: C 11000-- LADDER ! 82: C ! 83: 11000 GHERE=(RM.EQ.CPUZZ) ! 84: RETURN ! 85: C ! 86: END ! 87: C MRHERE-- IS MIRROR HERE? ! 88: C ! 89: C DECLARATIONS ! 90: C ! 91: INTEGER FUNCTION MRHERE(RM) ! 92: IMPLICIT INTEGER(A-Z) ! 93: C ! 94: C ROOMS ! 95: #include "rindex.h" ! 96: #include "flags.h" ! 97: C MRHERE, PAGE 2 ! 98: C ! 99: IF((RM.LT.MRAE).OR.(RM.GT.MRDW)) GO TO 100 ! 100: C ! 101: C RM IS AN E-W ROOM, MIRROR MUST BE N-S (MDIR= 0 OR 180) ! 102: C ! 103: MRHERE=1 ! 104: C !ASSUME MIRROR 1 HERE. ! 105: IF(MOD(RM-MRAE,2).EQ.(MDIR/180)) MRHERE=2 ! 106: RETURN ! 107: C ! 108: C RM IS NORTH OR SOUTH OF MIRROR. IF MIRROR IS N-S OR NOT ! 109: C WITHIN ONE ROOM OF RM, LOSE. ! 110: C ! 111: 100 MRHERE=0 ! 112: IF((IABS(MLOC-RM).NE.1).OR.(MOD(MDIR,180).EQ.0)) RETURN ! 113: C ! 114: C RM IS WITHIN ONE OF MLOC, AND MDIR IS E-W ! 115: C ! 116: MRHERE=1 ! 117: IF(((RM.LT.MLOC).AND.(MDIR.LT.180)).OR. ! 118: & ((RM.GT.MLOC).AND.(MDIR.GT.180))) MRHERE=2 ! 119: RETURN ! 120: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.