(include "sci.sh")
(use "Main")
(use "Print")
(use "Blink")
(use "Cycle")
(use "Sounds")
(use "View")
(use "Obj")
(script 450)



(instance public rm450 of Rm
    (properties
        picture 84
        style 10
    )

    (method (init)
        (send gEgo:
            view(0)
            init()
            hide()
            stopUpd()
        )
        (switch (gGModNum)
            (case 420
                ((send gRoom:setScript(sInitRoom))  )
            )
            (default 
                ((send gRoom:setScript(sInitRoom)) )
            )
        )
        (super:init())
        (send gSQ5:handsOff())
    )


    (method (dispose param1)
        (super:dispose(rest param1))
    )

)
(instance sInitRoom of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((pHead:init()) (pArm:init()) = cycles 1  )
            )
            (case 1
                (= seconds 3  )
            )
            (case 2
                ((pHead:
                    setLoop(0)
                    cycleSpeed(15)
                    setCycle(CT 2 1 self)
                )
  )
            )
            (case 3
                ((send gTestMessager:say(1 0 0 0 self))  )
            )
            (case 4
                (= seconds 2  )
            )
            (case 5
                ((pArm:cel(1)) = seconds 1  )
            )
            (case 6
                ((send gTestMessager:say(1 0 1 0 self))  )
            )
            (case 7
                ((pArm:cel(0)) (pHead:cel(3)) = seconds 2  )
            )
            (case 8
                ((send gRoom:newRoom(420)) )
            )
        )
    )

)
(instance pHead of Actor
    (properties
        x 143
        y 70
        view 460
    )
)
(instance pArm of Actor
    (properties
        x 118
        y 153
        view 460
        loop 1
    )
)
(instance public pTalker of Talker
    (properties
        x 134
        y 36
        view 460
        cel 2
        talkWidth 200
    )

    (method (init param1)
        = font gFont
        (send (= gSq5Win gNewSpeakWindow):
            tailX(120)
            tailY(36)
            xOffset(65531)
            isBottom(1)
        )
        (self:
            cel(2)
            loop(0)
        )
        (super:init(0 pEyes pMouth rest param1))
    )


    (method (dispose param1)
        = gSq5Win gSq5Win_2
        (super:dispose(rest param1))
    )


    (method (display param1)
        (var theTalkWidth, newGSq5Win)
        = theTalkWidth talkWidth
        (send (= newGSq5Win (send gSq5Win:new())):
            color(color)
            back(back)
        )
        (if (not HaveMouse() and (<> gSaveCursor 996))
            = saveCursor gSaveCursor
            (send gSQ5:setCursor(996))
        )(else
            = saveCursor 0
        )
        (if (showTitle)
            (Print:addTitle(name))
        )
        (Print:
            window(newGSq5Win)
            posn(x y)
            font(font)
            width(theTalkWidth)
            addText(param1)
            modeless(1)
            init()
        )
    )

)
(instance pEyes of Actor
    (properties
        nsTop 11
        nsLeft 31
        view 460
        loop 2
        cel 1
        priority 6
        signal 16
    )
)
(instance pMouth of Actor
    (properties
        nsTop 34
        nsLeft 30
        view 460
        loop 3
        cel rm450
        priority 6
        signal 16400
    )
)
(instance public genTalker of Narrator
    (properties
        talkWidth 200
    )

    (method (init param1)
        = font gFont
        = gSq5Win gNewSpeakWindow
        (switch (global122)
            (case 19
                ((send gSq5Win:
                    tailX(160)
                    tailY(180)
                    xOffset(0)
                    isBottom(1)
                )
 )
            )
        )
        (super:init(rest param1))
    )


    (method (dispose param1)
        = gSq5Win gSq5Win_2
        (super:dispose(rest param1))
    )

)
