(include "sci.sh")
(use "Main")
(use "keyStuff")
(use "CueObj")
(use "Sounds")
(use "View")
(use "Obj")
(script 241)


(local
    local0
    local1
    local2
    local3

)
(procedure public (proc241_1 param1)
    = local0 param1
    = local3 param1
    (switch (local2)
        (case 0
            (
            (if ((<> local3 10) or (== global164 1))
                (if (== global164 1)
                    = global164 6
                )(else
                    = global164 3
                )
            )(else
                = global164 1
            )
 )
        )
        (case 2
            (
            (if ((<> local3 10) or (<> global164 1))
                (if (proc999_5(global164 0 2))
                    = global164 5
                )(else
                    = global164 4
                )
            )(else
                = global164 2
            )
 )
        )
        (default 
            (= global164 7 )
        )
    )
    (send gRoom:setScript(countDownClock))
)


(procedure public (proc241_2 param1)
    (if (paramTotal)
        = local2 param1
    )
    return local2
)


(procedure public (proc241_3 param1)
    (if (paramTotal)
        = local0 param1
    )
    return local0
)


(procedure public (proc241_4 param1)
    Joystick(3)
    Joystick(0 param1 5)
)


(instance public rm241 of Rm
    (properties
        noun 1
        picture 47
        style 32775
    )

    (method (init param1)
        (super:init(rest param1))
        (if (== global164 1)
            Palette(1 471 2)
            Joystick(0 471 0)
        )
        (if (<= global164 8)
            (face:
                init()
                stopUpd()
            )
        )
        (chamberControls:
            init()
            setOnMeCheck(1 2)
        )
        (topControlf:
            init()
            setOnMeCheck(1 16)
        )
        (chamberf:
            init()
            setOnMeCheck(1 32)
        )
        (self:setScript(startAll))
    )


    (method (doit param1)
        (if (GameIsRestarting() and (== global164 1))
            Palette(1 471 2)
            Joystick(0 471 0)
        )
        (super:doit(rest param1))
    )


    (method (dispose param1)
        (send gSq5Music1:fade(0 10 5 1))
        Joystick(3)
        DisposeScript(242)
        (super:dispose(rest param1))
    )


    (method (doVerb param1 param2)
        (if (not proc999_4(53 16 258 168 gPEventX gPEventY))
            (if (<> script countDownClock)
                (send gSq5Music1:stop())
                (self:newRoom(240))
            )
        )(else
            (if (== param1 1)
                170
                (send gTestMessager:
                    cel
                    x
                )
            )(else
                (super:doVerb(param1 rest param2))
            )
        )
    )

)
(instance face of Prop
    (properties
        x 122
        y 49
        view 263
        signal 16384
    )

    (method (init param1)
        (if (< global118 3)
            (self:setCel(global118))
            ++global118
        )(else
            (self:setCel(3))
        )
        (super:init(rest param1))
    )


    (method (doVerb param1)
        (send gRoom:doVerb(rest param1))
    )

)
(instance chamberControls of Feature
    (properties
        onMeCheck 2
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 4
                ((face:setScript(useChamberControls))  )
            )
            (case 1
                ((face:setScript(useChamberControls))  )
            )
            (default 
                ((super:doVerb(param1 rest param2)) )
            )
        )
    )

)
(instance startAll of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gSq5Music1:
                    number(101)
                    loop(-1)
                    play()
                )
 = cycles 1  )
            )
            (case 1
                (
                (if (== global164 1)
                    Palette(1 471 2)
                )
 (send gSQ5:handsOn()) (send gSq5IconBar:disable(0 3 4 5 6)) (self:dispose()) )
            )
        )
    )

)
(instance useChamberControls of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (= local1 1 (self:setScript(ScriptID(242 0) self local0))  )
            )
            (case 1
                ((send gSQ5:handsOn()) = local1 0 (self:dispose()) )
            )
        )
    )

)
(instance countDownClock of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gSq5Music1:
                    number(225)
                    loop(-1)
                    play()
                )
 = cycles 1  )
            )
            (case 1
                (= ticks 50  )
            )
            (case 2
                (= next endActionsScript --local0 
                (if (local1)
                    proc242_1()
                )
 
                (if (not proc999_5(global164 1 2))
                    (if (not local0 or (> (- local3 local0) 5))
                        (self:dispose())
                    )(else
                        = state (- state 2)
                        = cycles 1
                    )
                )(else
                    (if (not local0)
                        (self:dispose())
                    )(else
                        = state (- state 2)
                        = cycles 1
                    )
                )
 )
            )
        )
    )

)
(instance endActionsScript of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gSq5Music1:
                    number(241)
                    loop(1)
                    play()
                )
 
                (if (local1)
                    (send (ScriptID(242 0)):
                        caller(self)
                        cue()
                    )
                )(else
                    = cycles 2
                )
 )
            )
            (case 1
                (
                (switch (global164)
                    (case 0
                        (= register 8  )
                    )
                    (case 1
                        (proc0_10(186 75) = register 4  )
                    )
                    (case 2
                        (
                        (if ((== gEurekaCurLocation 8) and (& global169 $0002))
                            proc0_10(187 50)
                            = register 1
                        )(else
                            = register 13
                        )
 )
                    )
                    (case 3
                        (= register 5  )
                    )
                    (case 4
                        (= register 2  )
                    )
                    (case 5
                        (= register 6  )
                    )
                    (case 6
                        (= register 3  )
                    )
                    (case 7
                        (= register 7 )
                    )
                )
 (send gTestMessager:say(1 0 register 0 self))  )
            )
            (case 2
                (
                (if (proc999_5(register 4 1))
                    (if (== register 1)
                        (send gSq5Music1:
                            number(225)
                            loop(-1)
                            play()
                        )
                        proc241_4(47)
                        = seconds 5
                    )(else
                        (send gSq5Music1:stop())
                        (send gRoom:newRoom(240))
                    )
                )(else
                    (send gSq5Music1:stop())
                    proc0_9(46)
                )
 )
            )
            (case 3
                ((send gSq5Music1:stop()) (send gRoom:newRoom(240)) )
            )
        )
    )

)
(instance topControlf of Feature
    (properties
        noun 3
        onMeCheck 16
    )

    (method (doVerb param1 param2)
        (if (== param1 1)
            170
            (send gTestMessager:
                cel
                x
            )
        )(else
            (super:doVerb(param1 rest param2))
        )
    )

)
(instance chamberf of Feature
    (properties
        noun 4
        onMeCheck 32
    )
)
