(include "sci.sh")
(use "Main")
(use "CueObj")
(use "Cycle")
(use "Sounds")
(use "Obj")
(script 350)



(class kiz of Rgn
    (properties
        script 0
        number 0
        modNum -1
        noun 0
        timer 0
        keep 0
        initialized 0
        modnum 301
    )

    (method (init param1)
        (super:init(rest param1))
        (if (not proc0_1(16))
            (self:setScript(sProdPlayer))
        )
        (if (((== (send gSq5Music1:number) 35) or ((== (send gSq5Music1:number) 124) and (== gModNum 325))) or ((== (send gSq5Music1:number) 17) and (<> gModNum 305)))
            (send gSq5Music1:
                number(15)
                loop(-1)
                play(0)
                fade(127 10 5 0)
            )
        )
    )


    (method (newRoom param1)
        = keep proc999_5(param1 300 305 310 315 320 325 330 335)
        = initialized 0
        (if (((== (send gSq5Music1:number) 35) or ((== (send gSq5Music1:number) 124) and (== param1 325))) or ((== (send gSq5Music1:number) 17) and (<> param1 305)))
            (send gSq5Music1:fade(0 5 10 1))
        )
        (super:newRoom(param1))
    )

)
(instance public yoFlo of Actions
    (properties)

    (method (doVerb param1)
        return 
            (switch (param1)
                (case 32
                    ((send gRoom:setScript(sBeamOut)) return 1  )
                )
                (default 
                    (return 0 )
                )
            )
    )

)
(instance public sBeamOut of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gSQ5:handsOff()) (send gEgo:setHeading(180 self))  )
            )
            (case 1
                ((send gEgo:
                    view(14)
                    loop(0)
                    cel(0)
                    setCycle(End self)
                )
  )
            )
            (case 2
                (
                (if (not proc0_1(9))
                    (if (not proc0_1(16))
                        = register 0
                        (send gTestMessager:say(1 32 6 0 self 301))
                    )(else
                        (if (<> gModNum 300)
                            = register 0
                            (send gTestMessager:say(1 32 2 0 self 301))
                        )(else
                            (if (not (send gEgo:has(20)))
                                = register 0
                                (send gTestMessager:say(1 32 3 0 self 301))
                            )(else
                                = register 1
                                (send gTestMessager:say(1 32 4 0 self 301))
                            )
                        )
                    )
                )(else
                    (if (not proc0_1(212))
                        (if (<> gModNum 325)
                            = register 0
                            (send gTestMessager:say(1 32 2 0 self 301))
                        )(else
                            = register 1
                            (send gTestMessager:say(1 32 4 0 self 301))
                        )
                    )(else
                        (if (<> gModNum 300)
                            = register 0
                            (send gTestMessager:say(1 32 2 0 self 301))
                        )(else
                            = register 1
                            (send gTestMessager:say(1 32 4 0 self 301))
                        )
                    )
                )
 )
            )
            (case 3
                ((send gEgo:setCycle(Beg self))  )
            )
            (case 4
                (
                (if (not register)
                    proc0_6(0)
                    (send gEgo:loop(2))
                    (send gSQ5:handsOn())
                    (self:dispose())
                )(else
                    (if (not (& global169 $0020) and (== gModNum 325))
                        (if ((send (ScriptID(325 1)):script))
                            (send ((send (ScriptID(325 1)):script)):dispose())
                        )
                        (send (ScriptID(325 1)):
                            view(33)
                            setLoop(-1)
                            setLoop(0)
                            cel((send (ScriptID(325 1)):lastCel()))
                            x(293)
                            y(165)
                            setCycle(CT 2 -1 self)
                        )
                    )(else
                        = cycles 1
                    )
                )
 )
            )
            (case 5
                ((send gSq5Music2:
                    number(260)
                    setLoop(1)
                    play()
                )
 (send gEgo:
                    view(6)
                    loop(0)
                    cel((send gEgo:lastCel()))
                    cycleSpeed(6)
                    setCycle(Beg self)
                )
 
                (if (not (& global169 $0020) and (== gModNum 325))
                    (send (ScriptID(325 1)):setCycle(Beg))
                )
 
                (if ((send gEgo:has(17)))
                    (send gEgo:put(17))
                )
 )
            )
            (case 6
                (proc0_2(9) 
                (if ((send gEgo:has(17)))
                    (send gEgo:put(17))
                )
 (send gRoom:newRoom(240)) )
            )
        )
    )

)
(instance sProdPlayer of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (= seconds 5  )
            )
            (case 1
                (
                (if (proc0_1(66) and not proc0_1(67))
                    proc0_2(67)
                    (send gTestMessager:say(3 0 0 0 self 301))
                )(else
                    = cycles 1
                )
 )
            )
            (case 2
                (= seconds 180  )
            )
            (case 3
                (
                (if (not proc0_1(16))
                    (send gTestMessager:say(2 0 0 Random(1 3) self 301))
                )(else
                    (self:dispose())
                )
 )
            )
            (case 4
                (= state -1 = cycles 1  )
            )
            (case 5
                ((self:dispose()) )
            )
        )
    )

)
