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


(local
    local0
    local1[3]
    local4
    local5
    local6
    local7[5]
    local12
    local13
    local14
    local15[4]
    local19
    local20
    local21[4]
    local25
    local26
    local27[2]
    local29
    local30[200]

)
(instance openMusic of Sound
    (properties)
)
(instance public Room221 of Rm
    (properties
        picture 201
        style 8
    )

    (method (init)
        Load(rsVIEW 753)
        Load(rsVIEW 755)
        Load(rsVIEW 757)
        Load(rsVIEW 758)
        Load(rsVIEW 759)
        Load(rsVIEW 760)
        Load(rsVIEW 762)
        Load(rsVIEW 763)
        Load(rsVIEW 764)
        Load(rsVIEW 765)
        Load(rsVIEW 766)
        Load(rsVIEW 768)
        Load(rsVIEW 770)
        Load(rsVIEW 771)
        Load(rsPIC 201)
        Load(rsPIC 205)
        Load(rsPIC 207)
        (self:setRegions(520))
        (super:init())
        (send global2:setScript(PartTwo))
    )


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


    (method (newRoom param1)
        proc0_23()
        (send (ScriptID(520)):keep(0))
        (super:newRoom(param1))
    )

)
(instance PartTwo of Script
    (properties)

    (method (changeState newState)
        (send gAddToPics:dispose())
        (switch (= state newState)
            (case 0
                (= local19 (send ((Act:new())):
                        view(768)
                        loop(0)
                        posn(158 65)
                        cycleSpeed(4)
                        stopUpd()
                        init()
                        yourself()
                    )
 (send ((View:new())):
                    view(769)
                    loop(3)
                    posn(48 140)
                    setPri(0)
                    ignoreActors()
                    addToPic()
                )
 (send ((View:new())):
                    view(767)
                    setCel(3)
                    setLoop(0)
                    posn(300 145)
                    addToPic()
                )
 = local14 (send ((Act:new())):
                        view(764)
                        loop(1)
                        posn(62 118)
                        cycleSpeed(4)
                        setCycle(Fwd)
                        setPri(8)
                        init()
                        yourself()
                    )
 = seconds 2  )
            )
            (case 1
                (= local26 Print(221 0 160 "Rosella" 134 1 150 140 150 160 "Rosella" 172 166) = seconds 6  )
            )
            (case 2
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send local19:
                    setLoop(1)
                    setCycle(Fwd)
                )
 = local26 Print(221 1 134 180 50 140 110 172) = seconds 6  )
            )
            (case 3
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send local19:
                    setLoop(0)
                    setCycle(0)
                )
 (send local14:
                    setLoop(2)
                    cycleSpeed(20)
                    setCycle(Fwd)
                )
 = local26 Print(221 2 134 1 144 160 "Rosella" 140 150 172) = seconds 10  )
            )
            (case 4
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send local19:
                    setLoop(1)
                    setCycle(Fwd)
                )
 = local26 Print(221 3 134 180 50 140 110 172) = seconds 12  )
            )
            (case 5
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send gCast:eachElementDo(172)) (send global2:drawPic(207)) (send ((View:new())):
                    view(766)
                    loop(0)
                    cel(0)
                    posn(230 121)
                    setPri(0)
                    ignoreActors()
                    addToPic()
                )
 (send ((View:new())):
                    view(763)
                    cel(0)
                    loop(0)
                    posn(137 139)
                    ignoreActors()
                    setPri(0)
                    addToPic()
                )
 = local14 (send ((Act:new())):
                        view(763)
                        loop(1)
                        cel(0)
                        posn(155 110)
                        setCycle(Fwd)
                        setPri(15)
                        cycleSpeed(3)
                        init()
                        yourself()
                    )
 = local20 (send ((Act:new())):
                        view(766)
                        loop(1)
                        cel(0)
                        posn(230 107)
                        setPri(14)
                        cycleSpeed(0)
                        setCycle(Fwd)
                        init()
                        yourself()
                    )
 = local26 Print(221 4 134 1 161 160 "Rosella" 132 15 140 200 172) = seconds 6  )
            )
            (case 6
                (
                (if (== (send (ScriptID(520 1)):state()) 3)
                    --state
                    = seconds 2
                )(else
                    (send (ScriptID(520 1)):
                        keep(0)
                        dispose()
                    )
                    (openMusic:
                        number(105)
                        loop(1)
                        play()
                    )
                    (self:cue())
                )
 )
            )
            (case 7
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send local20:dispose()) (send local14:dispose()) (send global2:drawPic(205)) (send ((View:new())):
                    view(762)
                    loop(0)
                    cel(0)
                    posn(149 111)
                    ignoreActors()
                    setPri(0)
                    addToPic()
                )
 = local20 (send ((Act:new())):
                        view(762)
                        cycleSpeed(0)
                        loop(1)
                        cel(0)
                        posn(148 97)
                        setPri(6)
                        setCycle(Fwd)
                        init()
                        yourself()
                    )
 = local29 (send ((Act:new())):
                        view(762)
                        loop(4)
                        cel(0)
                        ignoreHorizon()
                        posn(142 19)
                        setPri(1)
                        init()
                        yourself()
                    )
 (send local29:setScript(doSparkle)) = local26 Print(221 5 160 "Genesta" 134 -1 135 140 300 172) = seconds 10  )
            )
            (case 8
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 = local26 Print(221 6 160 "Genesta" 134 -1 135 140 300 172) = seconds 12  )
            )
            (case 9
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send local20:dispose()) (send local29:
                    setScript(0)
                    dispose()
                )
 (send global2:drawPic(207)) (send ((View:new())):
                    view(766)
                    loop(0)
                    cel(0)
                    posn(230 121)
                    setPri(0)
                    ignoreActors()
                    addToPic()
                )
 (send ((View:new())):
                    view(763)
                    cel(0)
                    loop(0)
                    posn(137 139)
                    ignoreActors()
                    setPri(0)
                    addToPic()
                )
 (send ((View:new())):
                    view(766)
                    cel(0)
                    loop(2)
                    posn(230 110)
                    ignoreActors()
                    setPri(1)
                    addToPic()
                )
 = local13 (send ((Act:new())):
                        view(763)
                        loop(1)
                        cel(0)
                        posn(155 110)
                        setCycle(Fwd)
                        cycleSpeed(3)
                        setPri(15)
                        init()
                        yourself()
                    )
 = local26 Print(221 7 160 "Rosella" 134 1 161 140 200 172) = seconds 9  )
            )
            (case 10
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send local13:
                    view(766)
                    loop(3)
                    cel(0)
                    posn(230 72)
                    setPri(2)
                )
 = local26 Print(221 8 160 "Genesta" 134 100 161 140 200 172) = seconds 12  )
            )
            (case 11
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send local13:
                    view(763)
                    setLoop(1)
                    setCel(0)
                    posn(155 110)
                    setCycle(Fwd)
                    cycleSpeed(3)
                )
 = local26 Print(221 9 160 "Rosella" 134 1 161 140 200 172) = seconds 10  )
            )
            (case 12
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send global2:drawPic(205)) (send ((View:new())):
                    view(762)
                    loop(0)
                    cel(0)
                    posn(149 111)
                    ignoreActors()
                    setPri(0)
                    addToPic()
                )
 (send ((View:new())):
                    view(762)
                    loop(2)
                    cel(0)
                    posn(149 99)
                    ignoreActors()
                    setPri(1)
                    addToPic()
                )
 (send local13:
                    view(762)
                    setLoop(3)
                    setCel(0)
                    posn(149 60)
                    setCycle(Fwd)
                    cycleSpeed(2)
                    setPri(15)
                )
 = local29 (send ((Act:new())):
                        view(762)
                        loop(4)
                        cel(0)
                        ignoreHorizon()
                        posn(142 19)
                        setPri(1)
                        init()
                        yourself()
                    )
 (send local29:setScript(doSparkle)) = local26 Print(221 10 160 "Genesta" 134 1 145 140 300 172) = seconds 9  )
            )
            (case 13
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 = local26 Print(221 11 160 "Genesta" 134 1 145 140 300 172) = seconds 8  )
            )
            (case 14
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send local29:
                    setScript(0)
                    dispose()
                )
 (send global2:drawPic(207)) (send ((View:new())):
                    view(766)
                    loop(0)
                    cel(0)
                    posn(230 121)
                    setPri(0)
                    ignoreActors()
                    addToPic()
                )
 (send ((View:new())):
                    view(763)
                    cel(0)
                    loop(0)
                    posn(137 139)
                    ignoreActors()
                    setPri(0)
                    addToPic()
                )
 (send ((View:new())):
                    view(766)
                    cel(0)
                    loop(2)
                    posn(230 110)
                    ignoreActors()
                    setPri(1)
                    addToPic()
                )
 (send local13:
                    view(763)
                    loop(1)
                    cel(0)
                    posn(155 110)
                    setCycle(Fwd)
                    cycleSpeed(3)
                    setPri(15)
                )
 = local12 (send ((Act:new())):
                        view(766)
                        loop(4)
                        cel(0)
                        posn(230 107)
                        setCycle(Fwd)
                        cycleSpeed(3)
                        setPri(15)
                        init()
                        yourself()
                    )
 = local26 Print(221 12 160 "Rosella" 134 1 161 140 200 172) = seconds 10  )
            )
            (case 15
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send local13:
                    view(766)
                    loop(3)
                    cel(0)
                    posn(230 72)
                    setPri(2)
                )
 = local26 Print(221 13 160 "Genesta" 134 100 161 140 200 172) = seconds 8  )
            )
            (case 16
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send local13:dispose()) (send local12:dispose()) (send global2:drawPic(201)) = local19 (send ((Act:new())):
                        view(768)
                        loop(1)
                        setCycle(Fwd)
                        posn(158 65)
                        cycleSpeed(4)
                        init()
                        yourself()
                    )
 (send ((View:new())):
                    view(769)
                    loop(3)
                    posn(48 140)
                    setPri(0)
                    ignoreActors()
                    addToPic()
                )
 (send ((View:new())):
                    view(767)
                    setCel(3)
                    setLoop(0)
                    posn(300 145)
                    addToPic()
                )
 = local14 (send ((Act:new())):
                        view(764)
                        loop(0)
                        posn(172 95)
                        cycleSpeed(4)
                        stopUpd()
                        init()
                        yourself()
                    )
 = seconds 3  )
            )
            (case 17
                (= local26 Print(221 14 160 "Genesta" 134 -1 140 140 300 172) = seconds 9  )
            )
            (case 18
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 (send local19:
                    setLoop(2)
                    setCel(0)
                    cycleSpeed(2)
                    setCycle(End stopMirror)
                )
 = local26 Print(221 15 160 "Rosella" 134 215 50 172) = seconds 3  )
            )
            (case 19
                (
                (if ((not (send gSounds:contains(openMusic)) or (>= (openMusic:prevSignal()) 46)) or (>= (openMusic:signal()) 46))
                    (self:cue())
                )(else
                    --state
                    = seconds 1
                )
 )
            )
            (case 20
                (
                (if (gTheNewDialog)
                    (send gTheNewDialog:dispose())
                )
 = local25 (send ((Act:new())):
                        view(770)
                        loop(0)
                        posn((send local14:x()) (send local14:y()))
                        setPri(15)
                        ignoreActors()
                        cycleSpeed(2)
                        setCycle(End self)
                        init()
                        yourself()
                    )
  )
            )
            (case 21
                ((send local14:dispose()) (send local25:
                    setLoop(1)
                    setCycle(End self)
                )
  )
            )
            (case 22
                ((send global2:newRoom(222)) )
            )
        )
    )


    (method (handleEvent pEvent)
        (if ((== (send pEvent:type()) 4) and (== (send pEvent:message()) 15360))
            = local0 DoSound(4)
            DoSound(4 not local0)
        )(else
            (if ((== (send pEvent:type()) 4) and (== (send pEvent:message()) 13))
                (send gGame:restart())
            )
        )
    )

)
(instance stopRosella of Script
    (properties)

    (method (cue)
        (send local14:stopUpd())
    )

)
(instance hideRosella of Script
    (properties)

    (method (cue)
        (send local14:hide())
    )

)
(instance stopMirror of Script
    (properties)

    (method (cue)
        (send local19:stopUpd())
    )

)
(instance doSparkle of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (= seconds Random(1 4) (send local29:hide())  )
            )
            (case 1
                ((send local29:
                    cel(0)
                    setCycle(End self)
                    show()
                )
  )
            )
            (case 2
                ((self:changeState(0)) )
            )
        )
    )

)
(instance blinkEyes of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (= local6 (send ((Act:new())):
                        view(765)
                        loop(3)
                        setCel(0)
                        posn(201 68)
                        setPri(14)
                        cycleSpeed(2)
                        ignoreActors()
                        hide()
                        init()
                        yourself()
                    )
 (self:changeState(1))  )
            )
            (case 1
                ((send local6:hide()) (Timer:setReal(self Random(4 7)))  )
            )
            (case 2
                ((send local6:
                    show()
                    setCycle(End self)
                )
  )
            )
            (case 3
                ((self:changeState(1))  )
            )
            (case 4
                (
                (if (timer)
                    (send timer:dispose())
                )
 (send local6:show()) (send local6:
                    setLoop(1)
                    setCycle(End self)
                )
  )
            )
            (case 5
                ((send local6:
                    setLoop(3)
                    hide()
                )
 = local4 (send ((Act:new())):
                        view(765)
                        setLoop(4)
                        init()
                        yourself()
                    )
 (send local4:
                    cel(2)
                    setCel()
                    posn(+ (send local6:x()) 9 + (send local6:y()) 6)
                    setPri(15)
                    ignoreActors()
                    setStep(0 1)
                    setMotion(MoveTo + (send local6:x()) 9 + (send local6:y()) 30 self)
                )
  )
            )
            (case 6
                ((send local4:dispose()) (self:changeState(1))  )
            )
            (case 7
                ((send local6:dispose()) )
            )
        )
    )

)
(instance rosellaBlinks of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (= local6 (send ((Act:new())):
                        view(753)
                        loop(1)
                        setCel(0)
                        posn(50 65)
                        setPri(14)
                        cycleSpeed(5)
                        ignoreActors()
                        init()
                        yourself()
                    )
 (self:changeState(1))  )
            )
            (case 1
                ((send local6:hide()) (Timer:setReal(self Random(4 7)))  )
            )
            (case 2
                ((send local6:
                    show()
                    setCycle(End self)
                )
  )
            )
            (case 3
                ((self:changeState(1))  )
            )
            (case 4
                (
                (if (timer)
                    (send timer:dispose())
                )
 )
            )
        )
    )

)
