(include "sci.sh")
(use "Main")
(use "Class_255_0")
(use "Cycle")
(use "Game")
(use "PV")
(script 32)


(local
    newProp
    newProp_2
    newProp_3
    newProp_4
    newView

)
(instance public Room32 of Rm
    (properties
        picture 32
    )

    (method (init)
        Load(rsVIEW 9)
        = north 40
        = west (= east (= south 31))
        = horizon 114
        (super:init())
        (self:setRegions(504 519))
        = newProp (Prop:new())
        = newProp_2 (Prop:new())
        = newProp_3 (Prop:new())
        = newProp_4 (Prop:new())
        (send (= newView (View:new())):
            view(613)
            loop(2)
            cel(0)
            posn(163 63)
            setPri(2)
            init()
            stopUpd()
        )
        (send newProp:
            view(660)
            loop(0)
            cel(1)
            posn(79 82)
            ignoreActors()
            setPri(4)
            setCycle(Fwd)
            cycleSpeed(3)
            init()
        )
        (send newProp_2:
            view(660)
            loop(1)
            cel(2)
            posn(118 93)
            ignoreActors()
            setPri(5)
            setCycle(Fwd)
            cycleSpeed(3)
            init()
        )
        (send newProp_3:
            view(660)
            loop(2)
            cel(0)
            posn(214 94)
            ignoreActors()
            setPri(5)
            setCycle(Fwd)
            cycleSpeed(3)
            init()
        )
        (send newProp_4:
            view(660)
            loop(3)
            cel(3)
            posn(266 87)
            ignoreActors()
            setPri(5)
            setCycle(Fwd)
            cycleSpeed(3)
            init()
        )
        (if (global100)
            = picture 132
        )
        (if (>= (send gEgo:x()) 319)
            (send gEgo:x(1))
        )
        (if (<= (send gEgo:x()) 0)
            (send gEgo:x(318))
        )
        (switch (gPicture)
            (case 41
                ((send gEgo:posn(226 (+ horizon 1)))  )
            )
            (case 40
                ((send gEgo:posn(164 (+ horizon 1)))  )
            )
            (case 39
                ((send gEgo:posn(100 (+ horizon 1))) )
            )
        )
        (if (< (send gEgo:y()) horizon)
            (send gEgo:y((+ horizon (+ (send gEgo:yStep()) 1))))
        )
        (send gEgo:
            view(9)
            setCycle(Fwd)
            init()
        )
    )


    (method (handleEvent pEvent)
        (if ((send pEvent:claimed()))
            return 1
        )
        return 
            (if ((== (send pEvent:type()) 128) and Said('look>'))
                (if (Said('/tamir'))
                    Print(32 0)
                )(else
                    (if (Said('/island'))
                        Print(32 1)
                    )(else
                        (if (Said('/castle'))
                            Print(32 2)
                        )(else
                            (if (Said('/fish'))
                                Print(32 3)
                            )(else
                                (if (Said('[<around][/room]'))
                                    Print(32 4)
                                )
                            )
                        )
                    )
                )
            )(else
                0
            )
    )


    (method (newRoom param1)
        (if (== (send gEgo:edgeHit()) 1)
            (if (< (send gEgo:x()) 115)
                (super:newRoom(39))
            )(else
                (if (> (send gEgo:x()) 198)
                    (super:newRoom(41))
                )(else
                    (super:newRoom(40))
                )
            )
        )(else
            (super:newRoom(param1))
        )
    )

)
