C***  BURDEN .. RETURNS WEIGHT OF ITEMS BEING CARRIED

       INTEGER FUNCTION BURDEN(OBJ)

C  IF OBJ=0, BURDEN CALCULATES THE TOTAL WEIGHT OF THE ADVENTURER'S BURDEN,
C       INCLUDING EVERYTHING IN ALL CONTAINERS (EXCEPT THE BOAT) THAT HE IS
C       CARRYING.
C  IF OBJ#0 AND OBJ IS A CONTAINER, CALCULATE THE WEIGHT OF EVERYTHING INSIDE
C       THE CONTAINER (INCLUDING THE CONTAINER ITSELF).  SINCE DONKEY FORTRAN
C       ISN'T RECURSIVE, WE WILL ONLY CALCULATE WEIGHTS OF CONTAINED CONTAINERS
C       ONE LEVEL DOWN.  THE ONLY SERIOUS CONTAINED CONTAINER WOULD BE THE SACK
C       THE ONLY THINGS WE'LL MISS WILL BE FILLED VS EMPTY BOTTLE OR CAGE.
C  IF OBJ#0 AND ISN'T A CONTAINER, RETURN ITS WEIGHT.

       IMPLICIT INTEGER(A-Z)
      INTEGER*4 POINTS
       COMMON /OBJCOM/ PLAC(150),FIXD(150),WEIGHT(150),PROP(150),
     1          POINTS(150)
       COMMON /HLDCOM/ HOLDER(150),HLINK(150)
       COMMON /PLACOM/ ATLOC(250),LINK(300),PLACE(150),
     1          FIXED(150),MAXOBJ
       LOGICAL TOTING,WEARNG
       DATA BOAT /48/

       BURDEN=0
       IF(OBJ.NE.0)GOTO 200
       DO 100 I=1,MAXOBJ
       IF(.NOT.TOTING(I).OR.PLACE(I).EQ.-BOAT)GOTO 100
       BURDEN=BURDEN+WEIGHT(I)
100     CONTINUE
       RETURN

200     BURDEN=WEIGHT(OBJ)
       IF(OBJ.EQ.BOAT)RETURN
       TEMP=HOLDER(OBJ)
210     IF(TEMP.EQ.0)RETURN
       BURDEN=BURDEN+WEIGHT(TEMP)
       TEMP=HLINK(TEMP)
       GOTO 210

       END
