1C GHERE-- IS GLOBAL ACTUALLY IN THIS ROOM? 2C 3C COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142 4C ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED 5C WRITTEN BY R. M. SUPNIK 6C 7C DECLARATIONS 8C 9 LOGICAL FUNCTION GHERE(OBJ,RM) 10 IMPLICIT INTEGER(A-Z) 11#include "rooms.h" 12#include "rflag.h" 13#include "rindex.h" 14C 15 COMMON /STAR/ MBASE,STRBIT 16C GHERE, PAGE 2 17C 18 GHERE=.TRUE. 19C !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) 25C 26C 1000-- STARS ARE ALWAYS HERE 27C 281000 RETURN 29C 30C 2000-- BIRD 31C 322000 GHERE=((RM.GE.FORE1).AND.(RM.LT.CLEAR)).OR.(RM.EQ.MTREE) 33 RETURN 34C 35C 3000-- TREE 36C 373000 GHERE=((RM.GE.FORE1).AND.(RM.LT.CLEAR)).AND.(RM.NE.FORE3) 38 RETURN 39C 40C 4000-- NORTH WALL 41C 424000 GHERE=((RM.GE.BKVW).AND.(RM.LE.BKBOX)).OR.(RM.EQ.CPUZZ) 43 RETURN 44C 45C 5000-- EAST, SOUTH, WEST WALLS 46C 475000 GHERE=((RM.GE.BKVW).AND.(RM.LT.BKBOX)).OR.(RM.EQ.CPUZZ) 48 RETURN 49C 50C 6000-- GLOBAL WATER 51C 526000 GHERE=and(RFLAG(RM),(RWATER+RFILL)).NE.0 53 RETURN 54C 55C 7000-- GLOBAL GUARDIANS 56C 577000 GHERE=((RM.GE.MRC).AND.(RM.LE.MRD)).OR. 58& ((RM.GE.MRCE).AND.(RM.LE.MRDW)).OR.(RM.EQ.INMIR) 59 RETURN 60C 61C 8000-- ROSE/CHANNEL 62C 638000 GHERE=((RM.GE.MRA).AND.(RM.LE.MRD)).OR.(RM.EQ.INMIR) 64 RETURN 65C 66C 9000-- MIRROR 67C 9100 PANEL 68C 699100 IF(RM.EQ.FDOOR) RETURN 70C !PANEL AT FDOOR. 719000 GHERE=((RM.GE.MRA).AND.(RM.LE.MRC)).OR. 72& ((RM.GE.MRAE).AND.(RM.LE.MRCW)) 73 RETURN 74C 75C 10000-- MASTER 76C 7710000 GHERE=(RM.EQ.FDOOR).OR.(RM.EQ.NCORR).OR.(RM.EQ.PARAP).OR. 78& (RM.EQ.CELL) 79 RETURN 80C 81C 11000-- LADDER 82C 8311000 GHERE=(RM.EQ.CPUZZ) 84 RETURN 85C 86 END 87C MRHERE-- IS MIRROR HERE? 88C 89C DECLARATIONS 90C 91 INTEGER FUNCTION MRHERE(RM) 92 IMPLICIT INTEGER(A-Z) 93C 94C ROOMS 95#include "rindex.h" 96#include "flags.h" 97C MRHERE, PAGE 2 98C 99 IF((RM.LT.MRAE).OR.(RM.GT.MRDW)) GO TO 100 100C 101C RM IS AN E-W ROOM, MIRROR MUST BE N-S (MDIR= 0 OR 180) 102C 103 MRHERE=1 104C !ASSUME MIRROR 1 HERE. 105 IF(MOD(RM-MRAE,2).EQ.(MDIR/180)) MRHERE=2 106 RETURN 107C 108C RM IS NORTH OR SOUTH OF MIRROR. IF MIRROR IS N-S OR NOT 109C WITHIN ONE ROOM OF RM, LOSE. 110C 111100 MRHERE=0 112 IF((IABS(MLOC-RM).NE.1).OR.(MOD(MDIR,180).EQ.0)) RETURN 113C 114C RM IS WITHIN ONE OF MLOC, AND MDIR IS E-W 115C 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 121