(version 2)
(include "sci.sh")
(exports
    0 rm120
    1 sultanTalker
)
(use "Main")
(use "GloryTalker")
(use "Scaler")
(use "PolyPath")
(use "Polygon")
(use "n958")
(use "Rev")
(use "Cycle")
(use "Game")
(use "View")
(use "Obj")
(script 120)



(instance public rm120 of Rm
    (properties
        picture 120
        horizon 70
        picAngle 20
    )

    (method (init)
        proc0_2()
        (self:setRegions(61))
        (send global2:addObstacle((send ((Polygon:new())):
                type(2)
                init(0 189 0 0 319 0 319 152 280 117 251 118 222 107 197 107 180 81 143 82 144 101 135 102 135 108 123 130 80 116 80 189)
                yourself()
            )
))
        proc958_0(128 122 123 125 960 32)
        (send gOwner:
            normalize()
            changeGait(3)
            setScale(Scaler 100 96 170 86)
            setHeading(315)
            x(234)
            y(164)
            init()
        )
        (sultan:
            init()
            stopUpd()
        )
        (jaafar:
            init()
            stopUpd()
        )
        (send (ScriptID(34 1)):
            view(968)
            loop(3)
            cel(0)
            x(155)
            y(182)
            init()
            stopUpd()
        )
        (send (ScriptID(34 0)):
            x(196)
            y(10)
            textX(-175)
            textY(3)
            talkWidth(140)
        )
        (send (ScriptID(35 1)):
            view(964)
            loop(2)
            cel(3)
            x(141)
            y(181)
            init()
            stopUpd()
        )
        (super:init())
        (self:setScript(startUp))
    )


    (method (dispose)
        UnLoad(128 122)
        UnLoad(128 123)
        UnLoad(128 125)
        UnLoad(128 960)
        UnLoad(128 32)
        DisposeScript(35)
        DisposeScript(34)
        (super:dispose())
    )

)
(instance startUp of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                = cycles 3
            )
            (case 1
                (send gLongSong:
                    number(120)
                    loop(-1)
                    play()
                )
                (send gQg3Messager:say(1 6 1 0 self))
            )
            (case 2
                (sultan:setCycle(End self))
            )
            (case 3
                (send gQg3Messager:say(2 6 2 0 self))
            )
            (case 4
                (send gOwner:
                    setStep(3 3)
                    yStep(3)
                    setMotion(MoveTo 165 82 self)
                )
            )
            (case 5
                (send gOwner:setHeading(315))
                (if ((== global125 0) or (== global125 3))
                    (send gQg3Messager:say(2 6 3 0 self))
                )(else
                    (if (== global125 2)
                        (send gQg3Messager:say(2 6 4 0 self))
                    )(else
                        (send gQg3Messager:say(2 6 5 0 self))
                    )
                )
            )
            (case 6
                (sultan:
                    loop(3)
                    cel(0)
                    x(156)
                    y(81)
                    setCycle(End self)
                )
            )
            (case 7
                = ticks 60
            )
            (case 8
                (sultan:setCycle(Beg self))
            )
            (case 9
                (send gLongSong2:
                    number(942)
                    play()
                )
                = cycles 10
            )
            (case 10
                (sultan:
                    x(159)
                    y(82)
                    setPri(3)
                    view(123)
                    setCel(0)
                    setLoop(0)
                    setCycle(CT 4 1 self)
                )
            )
            (case 11
                (send gOwner:hide())
                (sultan:setCycle(CT 5 1 self))
            )
            (case 12
                = ticks 120
            )
            (case 13
                (sultan:cel(6))
                = cycles 5
            )
            (case 14
                (send gOwner:show())
                (sultan:setCel(7))
                = cycles 5
            )
            (case 15
                (sultan:
                    view(121)
                    setLoop(0)
                    setCel((sultan:lastCel()))
                    x(155)
                    y(77)
                    stopUpd()
                )
                (send gOwner:
                    setCycle(Rev)
                    setLoop((send gOwner:loop))
                    setStep(2 2)
                    xStep(2)
                    yStep(2)
                    setMotion(MoveTo 187 115 self)
                )
            )
            (case 16
                (send gOwner:
                    view(32)
                    setLoop(1)
                    cel(0)
                    x(176)
                    setCycle(End self)
                )
            )
            (case 17
                (send gOwner:
                    normalize()
                    x(182)
                    y(116)
                    setHeading(315)
                )
                (send gLongSong2:
                    number(932)
                    setLoop(-1)
                    play()
                )
                (portal:
                    ignoreActors(1)
                    cycleSpeed(10)
                    setCycle(Fwd)
                    init()
                )
                = seconds 3
            )
            (case 18
                (send gQg3Messager:say(3 6 6 0 self))
            )
            (case 19
                (send gOwner:setMotion(PolyPath 90 116 self))
            )
            (case 20
                (send gLongSong2:stop())
                (send global2:newRoom(200))
            )
        )
    )

)
(instance portal of Prop
    (properties
        x 61
        y 116
        view 125
    )
)
(instance sultan of Actor
    (properties
        x 155
        y 77
        view 121
        signal $4000
    )
)
(instance jaafar of Actor
    (properties
        x 113
        y 97
        view 120
    )
)
(instance public sultanTalker of GloryTalker
    (properties
        x 5
        y 15
        view 122
        loop 1
        talkWidth 135
        back 57
        textX 140
        textY 3
    )

    (method (init param1)
        (super:init(sultanBust sultanEyes sultanMouth rest param1))
    )

)
(instance sultanBust of Prop
    (properties
        nsTop 22
        nsLeft 40
        view 122
        loop 3
    )
)
(instance sultanMouth of Prop
    (properties
        nsTop 51
        nsLeft 41
        view 122
        cycleSpeed 10
    )
)
(instance sultanEyes of Prop
    (properties
        nsTop 40
        nsLeft 43
        view 122
        loop 2
        cycleSpeed 30
    )
)
