(version 2)
(include "sci.sh")
(exports
    0 rm064
)
(use "Main")
(use "Cycle")
(use "Game")
(use "TheMenuBar")
(use "Feature")
(use "Obj")
(script 64)



(instance public rm064 of Rm
    (properties
        picture 64
        south 68
        west 63
    )

    (method (init)
        (var temp0[50])
        proc0_3()
        (self:setRegions(600))
        Load(128 90)
        (spew1:init())
        (super:init())
        (TheMenuBar:draw())
        (SL:enable())
        (switch (gNorth)
            (case 63
                (send gEgo:
                    posn(2 (send gEgo:y))
                    init()
                )
            )
            (case 68
                (send gEgo:
                    posn((send gEgo:x) 187)
                    init()
                )
            )
        )
    )


    (method (doit)
        (var gEgoOnControl)
        (super:doit())
        (if (== (send global2:script) 0)
            = gEgoOnControl (send gEgo:onControl())
            (if ((== gEgoOnControl 3) or (== gEgoOnControl 2))
                (send gEgo:
                    setPri(3)
                    posn((send gEgo:x) - (send gEgo:y) 3)
                )
                = global180 1
            )(else
                (if ((== gEgoOnControl 5) or (== gEgoOnControl 7))
                    (send gEgo:
                        setPri(3)
                        posn(+ (send gEgo:x) 6 (send gEgo:y))
                    )
                    = global180 1
                )(else
                    (if ((== gEgoOnControl 9) or (== gEgoOnControl 13))
                        (send gEgo:
                            setPri(5)
                            posn(+ (send gEgo:x) 10 (send gEgo:y))
                        )
                        = global180 1
                    )(else
                        (if ((== gEgoOnControl 17) or (== gEgoOnControl 25))
                            (send gEgo:
                                setPri(7)
                                posn(+ (send gEgo:x) 6 (send gEgo:y))
                            )
                            = global180 1
                        )
                    )
                )
            )
        )
    )


    (method (handleEvent pEvent)
        (super:handleEvent(pEvent))
        (if ((<> (send pEvent:type) 128) or (send pEvent:claimed))
            return 
        )
    )


    (method (newRoom newRoomNumber)
        (if (== script 0)
            (if (global256)
                ++global593
            )
            (super:newRoom(newRoomNumber))
        )
    )

)
(instance SpewScript of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                = seconds Random(5 10)
            )
            (case 1
                (spew1:setCycle(End self))
            )
            (case 2
                (spew2:
                    init()
                    setCycle(End self)
                )
                (spew1:setCel(0))
            )
            (case 3
                (spew2:dispose())
                (self:changeState(0))
            )
        )
    )

)
(instance spew1 of Prop
    (properties)

    (method (init)
        (super:init())
        (self:
            view(90)
            setLoop(3)
            setCel(0)
            cycleSpeed(1)
            posn(112 21)
            setScript(SpewScript)
            ignoreActors()
        )
    )

)
(instance spew2 of Prop
    (properties)

    (method (init)
        (super:init())
        (self:
            view(90)
            setLoop(4)
            setCel(0)
            cycleSpeed(1)
            posn(196 0)
            ignoreActors()
        )
    )

)
