(version 2)
(include "sci.sh")
(exports
    0 openCart
    1 avisTalker
)
(use "Main")
(use "GloryTalker")
(use "Blink")
(use "MoveFwd")
(use "n958")
(use "Rev")
(use "Jump")
(use "Cycle")
(use "Game")
(use "View")
(use "Obj")
(script 100)


(local
    newCandle[6]

)
(instance public openCart of Rm
    (properties
        picture 100
        style $0009
        vanishingY -200
    )

    (method (init param1)
        (Narrator:color(10))
        proc0_2()
        (self:setRegions(61))
        (send gMainIconBar:disable())
        = newCandle[0] (candle:new())
        = newCandle[1] (candle:new())
        = newCandle[2] (candle:new())
        = newCandle[3] (candle:new())
        = newCandle[4] (candle:new())
        proc958_0(132 100 913 902)
        (switch (global125)
            (case 0
                Load(rsSOUND 101)
                Load(rsVIEW 650)
            )
            (case 2
                Load(rsSOUND 12)
                Load(rsSOUND 900)
            )
            (case 1
                Load(rsSOUND 12)
                Load(rsSOUND 900)
                Load(rsSOUND 13)
            )
            (case 3
                Load(rsSOUND 101)
            )
        )
        (candle:
            x(126)
            y(97)
            cel(Random(0 (candle:lastCel())))
            setCycle(Fwd)
            init()
        )
        (send newCandle[0]:
            x(102)
            y(80)
            cel(Random(0 (candle:lastCel())))
            setCycle(Fwd)
            init()
        )
        (send newCandle[1]:
            x(132)
            y(64)
            cel(Random(0 (candle:lastCel())))
            setCycle(Fwd)
            init()
        )
        (send newCandle[2]:
            x(182)
            y(67)
            cel(Random(0 (candle:lastCel())))
            setCycle(Fwd)
            init()
        )
        (send newCandle[3]:
            x(211)
            y(83)
            cel(Random(0 (candle:lastCel())))
            setCycle(Fwd)
            init()
        )
        (send newCandle[4]:
            x(186)
            y(102)
            cel(Random(0 (candle:lastCel())))
            setCycle(Fwd)
            init()
        )
        (avis:
            setScale(190)
            init()
        )
        (if (== global125 2)
            (send gOwner:
                x(27)
                y(119)
                setScale(190)
                init()
                changeGait(2)
                setCycle(Walk)
            )
            (pillar:
                init()
                setPri(11)
                stopUpd()
            )
            (pillar2:
                init()
                setPri(7)
                stopUpd()
            )
        )(else
            (if ((== global125 1) or proc0_6(144))
                (send gOwner:
                    x(325)
                    y(86)
                    setScale(190)
                    normalize()
                    init()
                    setHeading(300)
                    setStep(3 2)
                )
            )(else
                (if ((== global125 0) or (== global125 3))
                    (send gOwner:
                        x(325)
                        y(86)
                        setScale(190)
                        normalize()
                        init()
                    )
                    (avisTalker:
                        x(4)
                        y(94)
                        textX(140)
                        textY(30)
                        talkWidth(145)
                    )
                )
            )
        )
        (if ((<> global125 0) or proc0_6(144))
            (spellImage:
                setLoop(0)
                setScale(190)
                init()
                hide()
            )
        )
        (brazier:
            setScale(190)
            setLoop(
                (if (== global125 1)
                    1
                )(else
                    0
                )
)
            x(
                (if (== global125 1)
                    87
                )(else
                    60
                )
)
            y(
                (if (== global125 1)
                    68
                )(else
                    87
                )
)
            init()
        )
        (super:init(rest param1))
        (send global2:setScript(charSwitch))
    )


    (method (dispose)
        DisposeScript(951)
        (send gMainIconBar:enable())
        (Narrator:color(17))
        UnLoad(128 650)
        UnLoad(132 13)
        UnLoad(132 900)
        UnLoad(132 12)
        UnLoad(132 902)
        UnLoad(132 913)
        UnLoad(132 101)
        (super:dispose())
    )

)
(instance charSwitch of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                = cycles 3
            )
            (case 1
                (send gLongSong:
                    number(100)
                    play(127 self)
                    hold(1)
                )
            )
            (case 2
                (send gLongSong:client(0))
                (Narrator:keepWindow(0))
                (send gQg3Messager:say(1 6 12 0 self))
            )
            (case 3
                (avis:
                    setLoop(1)
                    setCycle(End self)
                )
            )
            (case 4
                (send gNarrator:y(120))
                (send gQg3Messager:say(2 6 2 0 self))
            )
            (case 5
                (send gLongSong:hold(2))
                (self:setScript(
                    (if ((== global125 3) and proc0_6(144))
                        mageCartoon
                    )(else
                        (if (== global125 0)
                            fighterCartoon
                        )(else
                            (if (== global125 1)
                                mageCartoon
                            )(else
                                (if (== global125 2)
                                    thiefCartoon
                                )(else
                                    fighterCartoon
                                )
                            )
                        )
                    )
 self))
            )
            (case 6
                (send gLongSong:release())
                = cycles 3
            )
            (case 7
                (send global2:newRoom(110))
            )
        )
    )

)
(instance knockBrazier of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (avis:
                    view(103)
                    loop(0)
                    cel(0)
                    setCycle(CT 4 1 self)
                )
            )
            (case 1
                (brazier:setCycle(End))
                (avis:setCycle(End self))
            )
            (case 2
                (avis:
                    loop(1)
                    cel(0)
                    setCycle(End)
                )
                (send gLongSong2:
                    number(101)
                    play(self)
                )
                (flame:
                    init()
                    setCycle(End self)
                )
            )
            (case 3
                (brazier:
                    setLoop(2)
                    setCycle(Fwd)
                )
            )
            (case 4
                (send gLongSong2:
                    number(913)
                    setLoop(-1)
                    play()
                )
                (flame2:
                    setPri(1)
                    setCycle(End self)
                    init()
                )
                (flame:
                    setLoop(1)
                    setCycle(Fwd)
                )
            )
            (case 5
                (flame2:
                    setLoop(3)
                    cel(0)
                    setCycle(Fwd)
                )
                (avis:
                    view(101)
                    loop(0)
                    cel(0)
                )
                (self:dispose())
            )
        )
    )

)
(instance fighterCartoon of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gOwner:
                    changeGait(1)
                    setMotion(MoveTo 217 83 self)
                )
            )
            (case 1
                (send gLongSong2:
                    number(902)
                    play()
                )
                (send newCandle[3]:
                    cel(0)
                    loop(1)
                    x(- (send newCandle[3]:x) 8)
                )
                = cycles 6
            )
            (case 2
                (send newCandle[3]:setCycle(End self))
            )
            (case 3
                (send gQg3Messager:say(1 6 4 0 self))
            )
            (case 4
                (send gLongSong:hold(3))
                (avis:
                    setLoop(0)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 5
                (send gQg3Messager:say(2 6 3 0 self))
            )
            (case 6
                (send gOwner:setMotion(MoveTo 186 56 self))
                (self:setScript(knockBrazier self))
            )
            (case 7
                (send gLongSong:hold(4))
            )
            (case 8
                (send gOwner:normalize(5))
                (send gQg3Messager:say(2 6 5 0 self))
            )
            (case 9
                (send gOwner:
                    view(109)
                    setCycle(Walk)
                    setLoop(0)
                    cel(0)
                    setMotion(MoveTo 90 74 self)
                )
            )
            (case 10
                (send gLongSong2:
                    number(901)
                    setLoop(1)
                    play()
                )
                (avis:
                    view(107)
                    loop(0)
                    cel(0)
                    x(77)
                    y(76)
                    setStep(6 4)
                    xStep(6)
                    yStep(4)
                    moveSpeed(0)
                    setCycle(Fwd)
                    setMotion(MoveTo 32 85 self)
                )
            )
            (case 11
                (avis:
                    view(105)
                    loop(0)
                    cel(0)
                    setCycle(End self)
                )
                (send gLongSong2:
                    number(912)
                    setLoop(1)
                    play(127)
                )
            )
            (case 12
                (avisBust:cel(1))
                (avisEyes:loop(4))
                (send gQg3Messager:say(2 6 6 0 self))
            )
            (case 13
                = seconds 2
            )
            (case 14
                (send gLongSong2:fade(0 2 5 1))
                (avis:dispose())
                (send gQg3Messager:say(1 6 7 0 self))
            )
            (case 15
                (send gLongSong:release())
                (self:dispose())
            )
        )
    )

)
(instance mageCartoon of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                = cycles 3
            )
            (case 1
                (send gOwner:setMotion(MoveTo 290 86 self))
            )
            (case 2
                (send gOwner:
                    view(14)
                    loop(1)
                    cel(0)
                    setCycle(CT 7 1 self)
                )
            )
            (case 3
                (send gLongSong2:
                    number(12)
                    play()
                )
                (send gOwner:setCycle(Beg))
                (spellImage:
                    ignoreActors(1)
                    setLoop(7)
                    cel(0)
                    setScale(190)
                    x(288)
                    y(65)
                    setCycle(Fwd)
                    show()
                    setMotion(JumpTo 182 63 self)
                )
            )
            (case 4
                (send newCandle[2]:dispose())
                (spellImage:setMotion(JumpTo 280 65 self))
            )
            (case 5
                (send gOwner:normalize())
                (spellImage:hide())
                (send gQg3Messager:say(1 6 4 0 self))
            )
            (case 6
                (send gQg3Messager:say(2 6 3 0 self))
            )
            (case 7
                (send gLongSong:hold(3))
                (avis:
                    setLoop(0)
                    cel(0)
                    setCycle(End self)
                )
                (send gLongSong2:
                    number(900)
                    play()
                )
                (spellImage:
                    setLoop(1)
                    origStep(5138)
                    x(76)
                    y(40)
                    setScale(190)
                    show()
                    moveSpeed(0)
                    setMotion(MoveTo - (send gOwner:x) 10 - (send gOwner:y) 20 self)
                )
            )
            (case 8
            )
            (case 9
                (send gLongSong2:
                    number(10)
                    play()
                )
                (spellImage:
                    origStep(5138)
                    setMotion(MoveTo - (send gOwner:x) 50 - (send gOwner:y) 20 self)
                )
            )
            (case 10
                (spellImage:
                    setCycle(0)
                    hide()
                )
                (send gQg3Messager:say(1 6 8 0 self))
            )
            (case 11
                (send gOwner:
                    view(14)
                    loop(1)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 12
                (send gOwner:setCycle(Beg))
                (send gLongSong2:
                    number(13)
                    play()
                )
                (spellImage:
                    x(285)
                    y(67)
                    origStep(5138)
                    xStep(16)
                    yStep(12)
                    show()
                    setCycle(End)
                    setMotion(MoveTo 76 52 self)
                )
            )
            (case 13
                (send gOwner:normalize())
                (send gLongSong2:
                    number(11)
                    play()
                )
                (spellImage:
                    origStep(5138)
                    setMotion(MoveTo 126 53 self)
                )
            )
            (case 14
                (spellImage:
                    setCycle(0)
                    hide()
                )
                (send gQg3Messager:say(1 6 9 0 self))
            )
            (case 15
                = ticks 60
            )
            (case 16
                (send gOwner:
                    view(14)
                    loop(1)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 17
                (send gLongSong2:
                    number(13)
                    play()
                )
                (spellImage:
                    setLoop(5)
                    cel(0)
                    x(285)
                    y(60)
                    origStep(5138)
                    show()
                    setCycle(Fwd)
                    setMotion(MoveTo 147 17 self)
                )
                (send gOwner:setCycle(Beg))
            )
            (case 18
                (send gLongSong2:
                    number(11)
                    play()
                )
                (spellImage:
                    origStep(5138)
                    setMotion(MoveTo 76 52 self)
                )
            )
            (case 19
                (send gOwner:normalize())
                (spellImage:dispose())
                (send gLongSong2:
                    number(902)
                    play()
                )
                (brazier:setCycle(CT 5 1 self))
            )
            (case 20
                (brazier:setCycle(End self))
                (avis:
                    view(107)
                    loop(0)
                    cel(0)
                    x(77)
                    y(76)
                    setStep(4 3)
                    xStep(4)
                    yStep(3)
                    moveSpeed(0)
                    setCycle(Fwd)
                    setMotion(MoveTo 32 85 self)
                )
            )
            (case 21
                0
            )
            (case 22
                (brazier:
                    setLoop(2)
                    setCycle(Fwd)
                )
                = cycles 6
            )
            (case 23
                (avis:
                    view(105)
                    loop(0)
                    cel(0)
                    setCycle(End self)
                )
                (send gLongSong2:
                    number(912)
                    setLoop(1)
                    play(127)
                )
            )
            (case 24
                (avisBust:cel(1))
                (avisEyes:loop(4))
                (send gQg3Messager:say(2 6 6 0 self))
            )
            (case 25
                (send gLongSong:hold(4))
                = seconds 2
            )
            (case 26
                (send gQg3Messager:say(1 6 10 0 self))
            )
            (case 27
                (send gLongSong:release())
                (self:dispose())
            )
        )
    )

)
(instance thiefCartoon of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                = cycles 3
            )
            (case 1
                (send gOwner:
                    view(9)
                    loop(2)
                    cel(0)
                    x(27)
                    y(119)
                    setCycle(CT 3 1 self)
                )
            )
            (case 2
                (send gOwner:setHeading(90))
                (dag:
                    x(66)
                    y(84)
                    init()
                    setStep(5 3)
                    setScale(190)
                    setLoop(2)
                    cycleSpeed(0)
                    moveSpeed(0)
                    setCycle(Fwd)
                    setMotion(MoveTo 102 80 self)
                )
                (send gLongSong2:
                    number(916)
                    setLoop(1)
                    play(127)
                )
                (send gOwner:setCycle(End))
            )
            (case 3
                (send gOwner:view(2))
                (dag:dispose())
                (send gLongSong2:
                    number(902)
                    play()
                )
                (send newCandle[0]:
                    loop(2)
                    setCycle(End self)
                )
            )
            (case 4
                (send gQg3Messager:say(1 6 4 0 self))
            )
            (case 5
                (send gQg3Messager:say(2 6 3 0 self))
            )
            (case 6
                (send gLongSong:hold(3))
                (avis:
                    setLoop(0)
                    cel(0)
                    setCycle(CT 5 1 self)
                )
            )
            (case 7
                (send gLongSong2:
                    number(900)
                    play()
                )
                (spellImage:
                    x(95)
                    y(35)
                    init()
                    setPri(9)
                    origStep(5138)
                    setScale(190)
                    cycleSpeed(0)
                    moveSpeed(0)
                    setCycle(Fwd)
                    show()
                    setMotion(MoveTo 45 70 self)
                )
                (avis:setCycle(End))
            )
            (case 8
                (spellImage:
                    origStep(5138)
                    setMotion(MoveFwd 120)
                )
                (send gOwner:
                    view(108)
                    setLoop(1)
                    cel(0)
                    setCycle(CT 4 1 self)
                )
            )
            (case 9
                = ticks 60
            )
            (case 10
                (send gOwner:setCycle(End self))
            )
            (case 11
                (send gOwner:
                    normalize()
                    changeGait(1)
                    setMotion(MoveTo 169 164 self)
                )
            )
            (case 12
                (send gOwner:setMotion(MoveTo 183 164 self))
            )
            (case 13
                (spellImage:hide())
                (send gOwner:changeGait(2))
                = ticks 30
            )
            (case 14
                (avis:
                    cel(0)
                    setCycle(CT 5 1 self)
                )
            )
            (case 15
                (send gLongSong2:
                    number(900)
                    play()
                )
                (spellImage:
                    x(95)
                    y(35)
                    show()
                    setPri(7)
                    origStep(5138)
                    cycleSpeed(0)
                    moveSpeed(0)
                    setCycle(Fwd)
                    setMotion(MoveTo 175 112 self)
                )
            )
            (case 16
                (send gLongSong2:
                    number(13)
                    play()
                )
                (spellImage:
                    origStep(5138)
                    yStep(12)
                    setMotion(MoveTo 200 105 self)
                )
            )
            (case 17
                (spellImage:
                    setCycle(0)
                    hide()
                )
                (send gOwner:
                    changeGait(1)
                    setMotion(MoveTo 235 144 self)
                )
            )
            (case 18
                (send gOwner:setHeading(315))
                (avis:
                    cel(0)
                    setCycle(CT 5 1 self)
                )
            )
            (case 19
                (send gLongSong2:
                    number(900)
                    play()
                )
                (spellImage:
                    x(95)
                    y(35)
                    show()
                    setPri(7)
                    origStep(5138)
                    cycleSpeed(0)
                    moveSpeed(0)
                    setCycle(Fwd)
                    setMotion(MoveTo 189 95 self)
                )
            )
            (case 20
                (spellImage:
                    setPri(11)
                    origStep(5138)
                    setMotion(MoveFwd 180)
                )
                (send gOwner:
                    view(108)
                    setLoop(3)
                    setCycle(CT 4 1 self)
                )
            )
            (case 21
                = ticks 45
            )
            (case 22
                (send gOwner:setCycle(End self))
            )
            (case 23
                (spellImage:dispose())
                (send gOwner:
                    view(9)
                    setLoop(3)
                    cel(0)
                    setCycle(CT 3 1 self)
                )
            )
            (case 24
                (dag:
                    x(195)
                    y(96)
                    origStep(2568)
                    cycleSpeed(0)
                    setScale(190)
                    moveSpeed(0)
                    setCycle(Rev)
                    setMotion(MoveTo 105 60 self)
                    init()
                )
                (send gLongSong2:
                    number(916)
                    setLoop(1)
                    play(127)
                )
                (send gOwner:setCycle(End))
            )
            (case 25
                (dag:dispose())
                (avis:
                    view(107)
                    cel(0)
                    moveSpeed(0)
                    ignoreActors(1)
                    setCycle(Rev)
                    setMotion(MoveTo 32 85 self)
                )
            )
            (case 26
                (avis:
                    view(105)
                    loop(0)
                    cel(0)
                    setCycle(End self)
                )
                (send gLongSong2:
                    number(912)
                    setLoop(1)
                    play(127)
                )
            )
            (case 27
                (avisBust:cel(1))
                (avisEyes:loop(4))
                (send gQg3Messager:say(2 6 6 0 self))
            )
            (case 28
                (send gLongSong:hold(4))
                = seconds 2
            )
            (case 29
                (avis:dispose())
                = cycles 3
            )
            (case 30
                (send gNarrator:y(30))
                (send gQg3Messager:say(1 6 11 0 self))
            )
            (case 31
                (send gLongSong:release())
                (send gNarrator:y(120))
                (self:dispose())
            )
        )
    )

)
(instance flame of Prop
    (properties
        x 65
        y 89
        view 650
        signal $4000
    )
)
(instance flame2 of Prop
    (properties
        x 65
        y 89
        view 650
        loop 2
        signal $4000
    )
)
(instance dag of Actor
    (properties
        view 46
        loop 2
        signal $4000
    )
)
(instance avis of Actor
    (properties
        x 76
        y 76
        view 101
    )
)
(instance brazier of Prop
    (properties
        x 60
        y 87
        view 100
        signal $4000
    )
)
(instance pillar of Prop
    (properties
        x 155
        view 106
        cel 1
        signal $6000
    )
)
(instance pillar2 of Prop
    (properties
        x 4
        view 106
        signal $6000
    )
)
(instance public avisTalker of GloryTalker
    (properties
        x 110
        y 15
        view 119
        loop 1
        talkWidth 210
        back 57
        textX -60
        textY 100
    )

    (method (init param1)
        (super:init(avisBust avisEyes avisMouth rest param1))
    )


    (method (show)
        (super:show())
        DrawCel((send bust:view) (send bust:loop) (send bust:cel) + (send bust:nsLeft) nsLeft + (send bust:nsTop) nsTop -1)
    )

)
(instance avisBust of Prop
    (properties
        nsTop 28
        nsLeft 33
        view 119
        loop 3
    )
)
(instance avisMouth of Prop
    (properties
        nsTop 56
        nsLeft 33
        view 119
        cycleSpeed 10
    )
)
(instance avisEyes of Prop
    (properties
        nsTop 39
        nsLeft 34
        view 119
        loop 2
        cycleSpeed 30
    )
)
(instance candle of Prop
    (properties
        view 102
        signal $4000
    )
)
(instance spellImage of Actor
    (properties
        view 21
        signal $4000
    )
)
