1*35973SbosticC GHERE-- IS GLOBAL ACTUALLY IN THIS ROOM? 2*35973SbosticC 3*35973SbosticC COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142 4*35973SbosticC ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED 5*35973SbosticC WRITTEN BY R. M. SUPNIK 6*35973SbosticC 7*35973SbosticC DECLARATIONS 8*35973SbosticC 9*35973Sbostic LOGICAL FUNCTION GHERE(OBJ,RM) 10*35973Sbostic IMPLICIT INTEGER(A-Z) 11*35973Sbostic#include "rooms.h" 12*35973Sbostic#include "rflag.h" 13*35973Sbostic#include "rindex.h" 14*35973SbosticC 15*35973Sbostic COMMON /STAR/ MBASE,STRBIT 16*35973SbosticC GHERE, PAGE 2 17*35973SbosticC 18*35973Sbostic GHERE=.TRUE. 19*35973SbosticC !ASSUME WINS. 20*35973Sbostic GO TO (1000,1000,1000,1000,1000,1000, 21*35973Sbostic& 1000,1000,1000,1000,1000, 22*35973Sbostic& 2000,3000,4000,5000,5000,5000,6000, 23*35973Sbostic& 7000,8000,9000,9100,8000,10000,11000),OBJ-STRBIT 24*35973Sbostic CALL BUG(60,OBJ) 25*35973SbosticC 26*35973SbosticC 1000-- STARS ARE ALWAYS HERE 27*35973SbosticC 28*35973Sbostic1000 RETURN 29*35973SbosticC 30*35973SbosticC 2000-- BIRD 31*35973SbosticC 32*35973Sbostic2000 GHERE=((RM.GE.FORE1).AND.(RM.LT.CLEAR)).OR.(RM.EQ.MTREE) 33*35973Sbostic RETURN 34*35973SbosticC 35*35973SbosticC 3000-- TREE 36*35973SbosticC 37*35973Sbostic3000 GHERE=((RM.GE.FORE1).AND.(RM.LT.CLEAR)).AND.(RM.NE.FORE3) 38*35973Sbostic RETURN 39*35973SbosticC 40*35973SbosticC 4000-- NORTH WALL 41*35973SbosticC 42*35973Sbostic4000 GHERE=((RM.GE.BKVW).AND.(RM.LE.BKBOX)).OR.(RM.EQ.CPUZZ) 43*35973Sbostic RETURN 44*35973SbosticC 45*35973SbosticC 5000-- EAST, SOUTH, WEST WALLS 46*35973SbosticC 47*35973Sbostic5000 GHERE=((RM.GE.BKVW).AND.(RM.LT.BKBOX)).OR.(RM.EQ.CPUZZ) 48*35973Sbostic RETURN 49*35973SbosticC 50*35973SbosticC 6000-- GLOBAL WATER 51*35973SbosticC 52*35973Sbostic6000 GHERE=and(RFLAG(RM),(RWATER+RFILL)).NE.0 53*35973Sbostic RETURN 54*35973SbosticC 55*35973SbosticC 7000-- GLOBAL GUARDIANS 56*35973SbosticC 57*35973Sbostic7000 GHERE=((RM.GE.MRC).AND.(RM.LE.MRD)).OR. 58*35973Sbostic& ((RM.GE.MRCE).AND.(RM.LE.MRDW)).OR.(RM.EQ.INMIR) 59*35973Sbostic RETURN 60*35973SbosticC 61*35973SbosticC 8000-- ROSE/CHANNEL 62*35973SbosticC 63*35973Sbostic8000 GHERE=((RM.GE.MRA).AND.(RM.LE.MRD)).OR.(RM.EQ.INMIR) 64*35973Sbostic RETURN 65*35973SbosticC 66*35973SbosticC 9000-- MIRROR 67*35973SbosticC 9100 PANEL 68*35973SbosticC 69*35973Sbostic9100 IF(RM.EQ.FDOOR) RETURN 70*35973SbosticC !PANEL AT FDOOR. 71*35973Sbostic9000 GHERE=((RM.GE.MRA).AND.(RM.LE.MRC)).OR. 72*35973Sbostic& ((RM.GE.MRAE).AND.(RM.LE.MRCW)) 73*35973Sbostic RETURN 74*35973SbosticC 75*35973SbosticC 10000-- MASTER 76*35973SbosticC 77*35973Sbostic10000 GHERE=(RM.EQ.FDOOR).OR.(RM.EQ.NCORR).OR.(RM.EQ.PARAP).OR. 78*35973Sbostic& (RM.EQ.CELL) 79*35973Sbostic RETURN 80*35973SbosticC 81*35973SbosticC 11000-- LADDER 82*35973SbosticC 83*35973Sbostic11000 GHERE=(RM.EQ.CPUZZ) 84*35973Sbostic RETURN 85*35973SbosticC 86*35973Sbostic END 87*35973SbosticC MRHERE-- IS MIRROR HERE? 88*35973SbosticC 89*35973SbosticC DECLARATIONS 90*35973SbosticC 91*35973Sbostic INTEGER FUNCTION MRHERE(RM) 92*35973Sbostic IMPLICIT INTEGER(A-Z) 93*35973SbosticC 94*35973SbosticC ROOMS 95*35973Sbostic#include "rindex.h" 96*35973Sbostic#include "flags.h" 97*35973SbosticC MRHERE, PAGE 2 98*35973SbosticC 99*35973Sbostic IF((RM.LT.MRAE).OR.(RM.GT.MRDW)) GO TO 100 100*35973SbosticC 101*35973SbosticC RM IS AN E-W ROOM, MIRROR MUST BE N-S (MDIR= 0 OR 180) 102*35973SbosticC 103*35973Sbostic MRHERE=1 104*35973SbosticC !ASSUME MIRROR 1 HERE. 105*35973Sbostic IF(MOD(RM-MRAE,2).EQ.(MDIR/180)) MRHERE=2 106*35973Sbostic RETURN 107*35973SbosticC 108*35973SbosticC RM IS NORTH OR SOUTH OF MIRROR. IF MIRROR IS N-S OR NOT 109*35973SbosticC WITHIN ONE ROOM OF RM, LOSE. 110*35973SbosticC 111*35973Sbostic100 MRHERE=0 112*35973Sbostic IF((IABS(MLOC-RM).NE.1).OR.(MOD(MDIR,180).EQ.0)) RETURN 113*35973SbosticC 114*35973SbosticC RM IS WITHIN ONE OF MLOC, AND MDIR IS E-W 115*35973SbosticC 116*35973Sbostic MRHERE=1 117*35973Sbostic IF(((RM.LT.MLOC).AND.(MDIR.LT.180)).OR. 118*35973Sbostic& ((RM.GT.MLOC).AND.(MDIR.GT.180))) MRHERE=2 119*35973Sbostic RETURN 120*35973Sbostic END 121