File BTNVTEXT.SC:
;;; a view only-button that is not added to the cast list like BtnView.
File DIALOG.SC:
                (if (and (!= (PicState) PIC_VALID) cast)
                        (Animate (cast elements?) FALSE)
File GROOPER.SC:
                                (not (cast contains: client))   ; just go to loop if not in cast
File VIEW.SC:
                init                                    ;add actor to cast, once prepared for animation
                hide                                    ;remove View from screen, but leave in cast
                ;; Prepare View and add to cast.
                ;Set lastSeen to null rectangle if View is not currently in the cast.
                (if (not (cast contains: self))
                ;Add to cast.
                (cast add: self)
                ;; Hide the object (remove from screen without removing from cast).
                ;; cast of dispose:d actors.
                        ;Remove the object from the cast.
                        (cast delete:self)
                (if (not (cast contains self))
File ACTOR.SC:
                ;; Prepare actor for animation and add to cast.
                ;; via the "eachElementDo" method of the cast.
                ;; for deletion, but leaves it in the cast so that it can be removed
                                        (CanBeHere self (cast elements?))
;                       (Animate (cast elements?) FALSE)
File TRACK.SC:
        ;;      client should come AFTER "who" in the cast
File MOUSER.SC:
        ;;                              ,add: cast features
                                                                (cast contains: thisEgo)
File PROP.SC:
                ;; via the "eachElementDo" method of the cast.
File CAT.SC:
                int     doCast          FALSE           ;1=execute cast's doits 
        (method (track event  &tmp castOfOne)
                (if doCast
                        ((= castOfOne (Collection new:)) add: self)
                                (Animate (castOfOne elements?) TRUE)
                        (castOfOne release:, dispose:)
                        ((not doCast)
File PRINT.SC:
                                ;--- Animate the cast list first
                                (Animate (cast elements?) FALSE)
File COLLECT.SC:
        ;;              (cast addAfter: ego witch bat)
        ;;              (cast addBefore: ego wolf)
;;; Collection uses a SEQ_COPY, since (cast eachElementDo: #doit:) might
;;; result in an element of the cast deleting itself from the cast or adding
;;; trying to sequence through the cast itself.
        ;;; collections (the cast, etc.) are Sets.
File USER.SC:
                                        (cast contains: alterEgo)
                        (cast handleEvent: event)
;                       add: cast features,                     ;then cast and features (sorted)
