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

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

unix.superglobalmegacorp.com

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