(include "sci.sh")
(use "Main")
(use "Class_255_0")
(use "Sound")
(use "Cycle")
(use "Game")
(use "PV")
(use "Obj")
(script 11)


(local
    newProp[12]
    local12
    local13
    newProp_2
    newProp_3
    newProp_4
    newProp_5
    newProp_6
    newBlk

)
(instance walkingMusic of Sound
    (properties)
)
(instance public Room11 of Rm
    (properties
        picture 11
    )

    (method (init)
        = north 5
        = south 17
        = east 12
        = west 10
        = horizon 86
        = global101 0
        (if (global100)
            = picture 111
        )
        (send gEgo:edgeHit(0))
        (super:init())
        (self:setRegions(509))
        = local12 1
        (while (<= local12 11)
            = newProp[local12] (Prop:new())
            ++local12
        )
        (send newProp[1]:
            view(692)
            loop(0)
            cel(0)
            posn(145 77)
            setPri(4)
            cycleSpeed(1)
            ignoreActors()
            init()
            stopUpd()
        )
        (send newProp[2]:
            view(692)
            loop(1)
            cel(0)
            posn(152 84)
            setPri(7)
            cycleSpeed(1)
            ignoreActors()
            init()
            stopUpd()
        )
        (send newProp[3]:
            view(692)
            loop(2)
            cel(0)
            posn(167 84)
            setPri(7)
            cycleSpeed(1)
            ignoreActors()
            init()
            stopUpd()
        )
        (send newProp[4]:
            view(692)
            loop(3)
            cel(0)
            posn(196 71)
            setPri(7)
            cycleSpeed(1)
            ignoreActors()
            init()
            stopUpd()
        )
        (send newProp[5]:
            view(692)
            loop(4)
            cel(0)
            posn(213 67)
            setPri(7)
            cycleSpeed(1)
            ignoreActors()
            init()
            stopUpd()
        )
        (send newProp[6]:
            view(692)
            loop(5)
            cel(0)
            posn(258 77)
            setPri(7)
            cycleSpeed(1)
            ignoreActors()
            init()
            stopUpd()
        )
        (send newProp[7]:
            view(692)
            loop(6)
            cel(0)
            posn(305 71)
            setPri(7)
            cycleSpeed(1)
            ignoreActors()
            init()
            stopUpd()
        )
        (send newProp[8]:
            view(693)
            loop(0)
            cel(0)
            posn(81 106)
            setPri(11)
            cycleSpeed(1)
            ignoreActors()
            init()
            stopUpd()
        )
        (send newProp[9]:
            view(693)
            loop(1)
            cel(0)
            posn(242 87)
            setPri(11)
            cycleSpeed(1)
            ignoreActors()
            init()
            stopUpd()
        )
        (send newProp[10]:
            view(693)
            loop(2)
            cel(0)
            posn(256 86)
            setPri(11)
            cycleSpeed(1)
            ignoreActors()
            init()
            stopUpd()
        )
        (send newProp[11]:
            view(694)
            loop(0)
            cel(0)
            posn(281 66)
            setPri(11)
            cycleSpeed(1)
            ignoreActors()
            init()
            stopUpd()
        )
        = newProp_2 (Prop:new())
        = newProp_3 (Prop:new())
        = newProp_4 (Prop:new())
        = newProp_5 (Prop:new())
        = newProp_6 (Prop:new())
        (send newProp_2:
            view(689)
            loop(2)
            cel(2)
            posn(105 63)
            setPri(10)
            setCycle(Fwd)
            cycleSpeed(2)
            ignoreActors()
            init()
        )
        (send newProp_3:
            view(689)
            loop(3)
            cel(3)
            posn(160 84)
            setPri(7)
            setCycle(Fwd)
            cycleSpeed(2)
            ignoreActors()
            init()
        )
        (send newProp_4:
            view(689)
            loop(4)
            cel(2)
            posn(249 84)
            setPri(10)
            setCycle(Fwd)
            cycleSpeed(2)
            ignoreActors()
            init()
        )
        (send newProp_5:
            view(689)
            loop(5)
            cel(3)
            posn(280 53)
            setPri(10)
            setCycle(Fwd)
            cycleSpeed(2)
            ignoreActors()
            init()
        )
        (send newProp_6:
            view(689)
            loop(6)
            cel(0)
            posn(314 49)
            setPri(10)
            setCycle(Fwd)
            cycleSpeed(2)
            ignoreActors()
            init()
        )
        (switch (gPicture)
            (case 10
                (
                (if (<= (send gEgo:y()) horizon)
                    (send gEgo:posn(1 (+ horizon 2)))
                )(else
                    (send gEgo:posn(1 (send gEgo:y())))
                )
 )
            )
            (case 12
                ((send gEgo:posn(318 (send gEgo:y())))  )
            )
            (case 17
                (
                (if (>= (send gEgo:x()) 277)
                    (send gEgo:
                        x(277)
                        y(188)
                    )
                )(else
                    (if (<= (send gEgo:x()) 103)
                        (send gEgo:
                            x(103)
                            y(188)
                        )
                    )(else
                        (send gEgo:y(188))
                    )
                )
 )
            )
            (case 5
                ((send gEgo:posn(148 (+ horizon 2)))  )
            )
            (case 0
                ((send gEgo:
                    x(318)
                    y(160)
                )
 )
            )
        )
        (walkingMusic:
            number(64)
            play()
        )
        (send gEgo:
            view(2)
            init()
        )
        (send (= newBlk (Blk:new())):
            left(212)
            top(103)
            right(224)
            bottom(106)
        )
        (send gEgo:observeBlocks(newBlk))
    )


    (method (doit)
        (super:doit())
        (if (not global112 and (== (send global2:script()) 0))
            (if (& (send gEgo:onControl(0)) $0002)
                = local12 8
                = local13 3
                (send global2:setScript(grabbed))
            )(else
                (if (& (send gEgo:onControl(0)) $0004)
                    = local12 1
                    = local13 1
                    (send global2:setScript(grabbed))
                )(else
                    (if (& (send gEgo:onControl(0)) $0008)
                        = local12 2
                        (send global2:setScript(grabbed))
                        = local13 2
                        (send global2:setScript(grabbed))
                    )(else
                        (if (& (send gEgo:onControl(0)) $0010)
                            = local12 3
                            = local13 1
                            (send global2:setScript(grabbed))
                        )(else
                            (if (& (send gEgo:onControl(0)) $0020)
                                = local12 4
                                = local13 1
                                (send global2:setScript(grabbed))
                            )(else
                                (if (& (send gEgo:onControl(0)) $0040)
                                    = local12 5
                                    = local13 1
                                    (send global2:setScript(grabbed))
                                )(else
                                    (if (& (send gEgo:onControl(0)) $0200)
                                        = local12 9
                                        = local13 1
                                        (send global2:setScript(grabbed))
                                    )(else
                                        (if (& (send gEgo:onControl(0)) $2000)
                                            = local12 6
                                            = local13 2
                                            (send global2:setScript(grabbed))
                                        )(else
                                            (if (& (send gEgo:onControl(0)) $0400)
                                                = local12 10
                                                = local13 2
                                                (send global2:setScript(grabbed))
                                            )(else
                                                (if (& (send gEgo:onControl(0)) $1000)
                                                    = local12 11
                                                    = local13 3
                                                    (send global2:setScript(grabbed))
                                                )(else
                                                    (if (& (send gEgo:onControl(0)) $0800)
                                                        = local12 7
                                                        = local13 2
                                                        (send global2:setScript(grabbed))
                                                    )
                                                )
                                            )
                                        )
                                    )
                                )
                            )
                        )
                    )
                )
            )
        )
    )


    (method (dispose)
        (send gSounds:eachElementDo(172))
        (super:dispose())
    )


    (method (handleEvent pEvent)
        (if ((send pEvent:claimed()))
            return 1
        )
        return 
            (if ((== (send pEvent:type()) 128) and ((Said('look/around') or Said('look/room')) or Said('look[<around][/!*]')))
                Print(11 0)
            )(else
                0
            )
    )

)
(instance grabbed of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((walkingMusic:dispose()) (send ((Sound:new())):
                    number(65)
                    play()
                )
 proc0_10() (send newProp[local12]:setCycle(CT local13 1 self))  )
            )
            (case 1
                ((send gEgo:dispose()) (send newProp[local12]:setCycle(End self))  )
            )
            (case 2
                (
                (switch (Random(1 6))
                    (case 1
                        (Print(11 1)  )
                    )
                    (case 2
                        (Print(11 2)  )
                    )
                    (case 3
                        (Print(11 3)  )
                    )
                    (case 4
                        (Print(11 4)  )
                    )
                    (case 5
                        (Print(11 5)  )
                    )
                    (case 6
                        (Print(11 6) )
                    )
                )
 = seconds 5  )
            )
            (case 3
                (= global127 1 )
            )
        )
    )

)
