(include "sci.sh")
(use "Main")
(use "eureka")
(use "Inset")
(use "Scaler")
(use "Osc")
(use "Polygon")
(use "CueObj")
(use "n958")
(use "Cycle")
(use "Sounds")
(use "User")
(use "View")
(use "Obj")
(script 250)


(local
    local0
    local1
    local2
    local3 = 1
    local4 = 1
    local5[5] = (25 64 77 94 111 )
    local10[5] = (25 75 90 107 127 )

)
(procedure (localproc_0108)
    (if (proc0_1(84))
        (if (<> (send gSq5Music1:number) 42)
            (send gSq5Music1:
                number(42)
                loop(-1)
                play(127)
            )
        )
    )(else
        (if (proc0_1(61))
            (if (<> (send gSq5Music1:number) 20)
                (send gSq5Music1:
                    number(20)
                    loop(-1)
                    play(127)
                )
            )
        )(else
            (send gSq5Music1:
                number(101)
                loop(-1)
                play(127)
            )
        )
    )
)


(procedure (localproc_0170 param1)
    return 
        (if (proc999_4(83 local5[1] 110 local10[1] param1))
            return 1
        )(else
            (if (proc999_4(83 local5[2] 110 local10[2] param1))
                return 2
            )(else
                (if (proc999_4(83 local5[3] 110 local10[3] param1))
                    return 3
                )(else
                    (if (proc999_4(83 local5[4] 110 local10[4] param1))
                        return 4
                    )(else
                        return -1
                    )
                )
            )
        )
)


(instance public rm250 of Rm
    (properties
        noun 10
        picture 44
        style 10
        vanishingX 20
        vanishingY 110
    )

    (method (init)
        (var temp0)
        (send gRoom:setRegions(210))
        proc958_0(128 251 266)
        proc0_6(0)
        (send gEgo:
            init()
            setScale(Scaler 134 81 164 134)
            edgeHit(0)
        )
        (cliffySuit:init())
        (otherSuit:init())
        (oxyTank:init())
        (console:
            init()
            setOnMeCheck(1 2)
        )
        (elevatorTop:init())
        (elevatorBottom:init())
        (pod:init())
        (cliffy:init())
        (maskDoor:
            init()
            stopUpd()
        )
        (cDoorF:init())
        (bayDoorsF:
            init()
            setOnMeCheck(1 16)
        )
        (switch (gGModNum)
            (case north
                ((send gEgo:
                    posn(288 135)
                    setHeading(180)
                )
 (self:setScript(sOpenElev))  )
            )
            (case 801
                ((send gEgo:posn(65486 65486)) (podRmDoors:
                    init()
                    setCel((podRmDoors:lastCel()))
                )
 (self:setScript(dropOffCliffy))  )
            )
            (default 
                ((send gEgo:
                    posn(288 135)
                    setHeading(180)
                )
 (self:setScript(sOpenElev)) )
            )
        )
        (send gRoom:addObstacle((send ((Polygon:new())):
                type(3)
                init(152 131 126 134 183 153 114 163 49 141 1 144 2 185 157 187 295 151 268 152 231 150 153 131)
                yourself()
            )
))
        (super:init())
        localproc_0108()
        (send gWalkHandler:addToFront(turboLift))
    )


    (method (dispose)
        (send gWalkHandler:delete(turboLift))
        (super:dispose())
    )

)
(instance sPopUpConsole of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gSQ5:handsOn()) (send gSq5IconBar:disable(0 3 1 5 4 6)) = seconds 2 = register 0  )
            )
            (case 1
                ((send gCast:eachElementDo(299)) (send gRoom:setInset(popUpConsole self)) (send gSQ5:setCursor(982 1 88 (+ local5[1] 5)))  )
            )
            (case 2
                (= seconds 2  )
            )
            (case 3
                (
                (switch (register)
                    (case 1
                        (
                        (if ((send gCast:contains(cliffy)))
                            (send gTestMessager:say(11 0 0 0 self))
                        )(else
                            = next sDoRedButton
                            (self:dispose())
                        )
 )
                    )
                    (case 2
                        ((self:setScript(sElevatorDoors self))  )
                    )
                    (case 3
                        ((self:setScript(sRotatePod self))  )
                    )
                    (case 4
                        ((self:setScript(sIntercom self))  )
                    )
                    (default 
                        (= cycles 1 )
                    )
                )
  )
            )
            (case 4
                ((send gSq5IconBar:enable(0 3 5 4 1 6)) 
                (if ((send gCast:contains(cliffy)))
                    (cliffy:startUpd())
                )
 (send gSQ5:handsOn()) (self:dispose()) )
            )
        )
    )

)
(instance sOpenElev of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gSQ5:handsOff()) (send gEgo:posn(288 138)) = cycles 1  )
            )
            (case 1
                ((send gSq5Music2:
                    number(127)
                    loop(1)
                    play()
                )
 = cycles 1  )
            )
            (case 2
                ((elevLights:
                    init()
                    setCycle(End self)
                )
  )
            )
            (case 3
                ((send gSq5Music2:
                    number(241)
                    setLoop(1)
                    play(self)
                )
  )
            )
            (case 4
                ((elevLights:dispose()) (self:setScript(sElevatorDoors self))  )
            )
            (case 5
                ((send gEgo:setMotion(MoveTo 277 154 self))  )
            )
            (case 6
                ((self:setScript(sElevatorDoors self))  )
            )
            (case 7
                ((send gSQ5:handsOn()) (self:dispose()) )
            )
        )
    )

)
(instance sExitNorth of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gSQ5:handsOff()) (send gEgo:setMotion(MoveTo 288 138 self))  )
            )
            (case 1
                ((send gEgo:setHeading(180)) = seconds 1  )
            )
            (case 2
                ((self:setScript(sElevatorDoors self))  )
            )
            (case 3
                ((elevLights:
                    init()
                    setCycle(Beg self)
                )
 (send gSq5Music2:
                    number(127)
                    loop(1)
                    play()
                )
  )
            )
            (case 4
                ((send gRoom:newRoom(225)) (self:dispose()) )
            )
        )
    )

)
(instance sRogPushButton of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gEgo:hide()) (rogThink:init()) = seconds 1  )
            )
            (case 1
                ((rogThink:setCycle(End self)) (rogArm:
                    init()
                    cycleSpeed(20)
                    setCycle(Osc 1 self)
                )
  )
            )
            (case 2
                (0  )
            )
            (case 3
                ((rogArm:dispose()) (rogThink:setCycle(Beg self))  )
            )
            (case 4
                ((self:dispose()) )
            )
        )
    )

)
(instance sDoButton of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gSQ5:handsOff()) (sPopUpConsole:register(local0)) = seconds 2  )
            )
            (case 1
                ((popUpConsole:dispose()) (self:dispose()) )
            )
        )
    )

)
(instance sOpenPodDoor of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (proc0_3(118) (podDoor:
                    init()
                    cel(0)
                    setCycle(End self)
                )
 (send gSq5Music2:
                    number(217)
                    loop(1)
                    play()
                )
  )
            )
            (case 1
                ((podDoor:setLoop(1)) = cycles 3  )
            )
            (case 2
                ((podDoor:
                    setLoop(1)
                    cel(0)
                    setCycle(End self)
                )
 (send gSq5Music2:
                    number(217)
                    loop(1)
                    play()
                )
  )
            )
            (case 3
                ((podDoor:stopUpd()) (self:dispose()) )
            )
        )
    )

)
(instance sClosePodDoor of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((podDoor:
                    setLoop(1)
                    cel(10)
                    setCycle(Beg self)
                )
 (send gSq5Music2:
                    number(217)
                    loop(1)
                    play()
                )
  )
            )
            (case 1
                (= cycles 1  )
            )
            (case 2
                ((podDoor:
                    setLoop(0)
                    cel(12)
                    setCycle(Beg self)
                )
 (send gSq5Music2:
                    number(217)
                    loop(1)
                    play()
                )
  )
            )
            (case 3
                ((podDoor:dispose()) (self:dispose()) )
            )
        )
    )

)
(instance sRotatePod of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gSQ5:handsOff()) 
                (if ((send gCast:contains(pod)))
                    = cycles 1
                )(else
                    (send gTestMessager:say(16 0 0 1 self))
                    = state 4
                )
 )
            )
            (case 1
                (
                (if (== (pod:cel) 4)
                    proc0_3(118)
                    (self:setScript(sClosePodDoor self))
                    = state 2
                )(else
                    (pod:
                        view(254)
                        loop(0)
                        cel(0)
                        setCycle(End self)
                    )
                )
 )
            )
            (case 2
                ((pod:stopUpd()) (self:setScript(sOpenPodDoor self)) proc0_2(118) = state 3  )
            )
            (case 3
                ((pod:
                    view(254)
                    loop(0)
                    cel((pod:lastCel()))
                    setCycle(Beg self)
                )
  )
            )
            (case 4
                ((pod:
                    view(251)
                    loop(1)
                    cel(
                        (if ((pod:cel))
                            4
                        )(else
                            3
                        )
)
                    stopUpd()
                )
 = cycles 1  )
            )
            (case 5
                ((send gSQ5:handsOn()) (self:dispose()) )
            )
        )
    )

)
(instance sGetInPod of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gSQ5:handsOff()) = cycles 1  )
            )
            (case 1
                (
                (if (== gEurekaCurLocation 14)
                    proc0_10(195 300)
                )
 (send gEgo:
                    view(267)
                    setLoop(0)
                    cel(0)
                    x(142)
                    y(156)
                    setScale(0)
                    setCycle(End self)
                )
  )
            )
            (case 2
                (= seconds 2  )
            )
            (case 3
                ((self:setScript(sClosePodDoor self))  )
            )
            (case 4
                (
                (if (not local4)
                    (self:setScript(sElevatorDoors self))
                )(else
                    = cycles 1
                )
 )
            )
            (case 5
                ((podRmDoors:
                    init()
                    cycleSpeed(10)
                    setCycle(End self)
                )
 = local3 0  )
            )
            (case 6
                ((pod:
                    view(254)
                    cel(0)
                    setLoop(1)
                    x(161)
                    y(154)
                    setCycle(End self)
                )
  )
            )
            (case 7
                (
                (if (== gEurekaCurLocation 15)
                    (send gRoom:newRoom(801))
                )(else
                    proc0_2(88)
                    (send gRoom:newRoom(802))
                )
 (self:dispose()) )
            )
        )
    )

)
(instance sIntercom of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gTestMessager:say(3 4 0 1 self))  )
            )
            (case 1
                ((send gSQ5:handsOn()) (self:dispose()) )
            )
        )
    )

)
(instance sDoRedButton of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gSQ5:handsOff()) = seconds 2  )
            )
            (case 1
                ((self:setScript(sRogPushButton self))  )
            )
            (case 2
                ((podRmDoors:
                    init()
                    cycleSpeed(16)
                    setCycle(End self)
                )
 = local3 0  )
            )
            (case 3
                (= cycles 1  )
            )
            (case 4
                ((send gSq5Music1:
                    number(276)
                    loop(-1)
                    play()
                )
 = cycles 1  )
            )
            (case 5
                ((rogThink:
                    loop(5)
                    cel(0)
                    posn(246 126)
                    setCycle(Fwd self)
                )
 (send gSq5Music2:
                    number(102)
                    loop(1)
                    play()
                )
 = seconds 4  )
            )
            (case 6
                ((rogThink:
                    setLoop(5)
                    setCel(8)
                    setPri(6)
                    setCycle(0)
                    moveSpeed(0)
                    setStep(20)
                    setScale(Scaler 134 75 164 110)
                    setMotion(MoveTo 35 110 self)
                )
  )
            )
            (case 7
                ((podRmDoors:setCycle(Beg self))  )
            )
            (case 8
                ((podRmDoors:dispose()) = seconds 2  )
            )
            (case 9
                ((send gSq5Music1:stop()) (rogThink:dispose()) proc0_9(10) (self:dispose()) )
            )
        )
    )

)
(instance sElevatorDoors of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gSQ5:handsOff()) = seconds 1  )
            )
            (case 1
                (
                (if (local4)
                    (elevatorBottom:startUpd())
                    (elevatorTop:
                        posn(249 88)
                        ignoreActors(0)
                        setMotion(MoveTo 249 45 self)
                    )
                    (turboLift:init())
                    = local4 0
                )(else
                    (elevatorTop:
                        posn(249 45)
                        ignoreActors(0)
                        setMotion(MoveTo 249 88 self)
                    )
                    (elevatorBottom:ignoreActors(0))
                    (turboLift:dispose())
                    = local4 1
                )
 )
            )
            (case 2
                (
                (if (local4)
                    (send gSq5Music2:
                        number(233)
                        loop(1)
                        play()
                    )
                )
 (elevatorTop:stopUpd()) (elevatorBottom:stopUpd()) 
                (if (<> client sOpenElev)
                    (send gSQ5:handsOn())
                )
 (self:dispose()) )
            )
        )
    )

)
(instance dropOffCliffy of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gSQ5:handsOff()) proc0_2(87) (send gEgo:stopUpd()) (pod:setCycle(End self))  )
            )
            (case 1
                ((podRmDoors:setCycle(Beg self))  )
            )
            (case 2
                ((podRmDoors:dispose()) = local3 1 (pod:
                    view(254)
                    cel(0)
                    setLoop(0)
                    x(161)
                    y(154)
                    cycleSpeed(20)
                    setCycle(End)
                )
 (cliffy:
                    x(150)
                    y(138)
                    setLoop(1)
                    cel(0)
                    setCycle(0)
                    setStep(6 6)
                    setMotion(MoveTo 150 166 self)
                )
  )
            )
            (case 3
                ((send gSq5Music2:
                    number(102)
                    loop(1)
                    play()
                )
 (cliffy:setCycle(End self))  )
            )
            (case 4
                ((cliffy:
                    setLoop(2)
                    cel(0)
                    setCycle(End self)
                )
  )
            )
            (case 5
                ((cliffy:
                    view(251)
                    loop(1)
                    cel(5)
                    stopUpd()
                )
 (pod:
                    view(251)
                    setLoop(1)
                    cel(4)
                    stopUpd()
                )
 (self:setScript(sOpenPodDoor self))  )
            )
            (case 6
                ((send gEgo:
                    view(267)
                    setLoop(0)
                    cel(11)
                    x(142)
                    y(156)
                    setScale(0)
                    setCycle(Beg self)
                )
  )
            )
            (case 7
                ((send gRoom:addObstacle((send ((Polygon:new())):
                        type(2)
                        init(114 164 176 155 182 177 121 177)
                        yourself()
                    )
)) proc0_6(0 7) (send gEgo:
                    setScale(Scaler 134 81 164 134)
                    posn(147 156)
                    setMotion(MoveTo 182 156 self)
                )
  )
            )
            (case 8
                ((send gEgo:setHeading(225 self))  )
            )
            (case 9
                ((send gTestMessager:say(12 0 0 0 self))  )
            )
            (case 10
                ((send gSQ5:handsOn()) (self:dispose()) )
            )
        )
    )

)
(instance getTank of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gSQ5:handsOff()) (oxyTank:
                    view(266)
                    loop(2)
                    cel(0)
                    setCycle(End self)
                )
 (send gSq5Music2:
                    number(103)
                    loop(1)
                    play()
                )
 = global137 3  )
            )
            (case 1
                ((send gEgo:
                    view(267)
                    loop(1)
                    cel(0)
                    setCycle(CT 2 1 self)
                )
  )
            )
            (case 2
                (proc0_10(190 25) (oxyTank:
                    setCel(2)
                    loop(1)
                    view(251)
                )
 (send gEgo:
                    get(9)
                    setCycle(End self)
                )
  )
            )
            (case 3
                (proc0_6(0 6) (oxyTank:stopUpd()) (send gSQ5:handsOn()) (self:dispose()) )
            )
        )
    )

)
(instance returnTank of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gSQ5:handsOff()) (send gEgo:
                    view(267)
                    loop(1)
                    cel(0)
                    setCycle(CT 2 1 self)
                )
  )
            )
            (case 1
                ((send gEgo:
                    put(9)
                    setCycle(End self)
                )
 (oxyTank:
                    startUpd()
                    view(266)
                    loop(2)
                    cel(8)
                )
  )
            )
            (case 2
                ((send gSq5Music2:
                    number(103)
                    loop(1)
                    play()
                )
 (oxyTank:setCycle(Beg self))  )
            )
            (case 3
                (proc0_6(0 6) (oxyTank:
                    view(251)
                    loop(1)
                    cel(6)
                    stopUpd()
                )
 (send gSQ5:handsOn()) (self:dispose()) )
            )
        )
    )

)
(instance getMask of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gSQ5:handsOff()) (send gEgo:setHeading(45 self))  )
            )
            (case 1
                ((send gEgo:
                    view(243)
                    loop(2)
                    cel(0)
                    setCycle(End self)
                )
  )
            )
            (case 2
                ((oxygenMask:init()) (send gSq5Music2:
                    number(103)
                    loop(1)
                    play()
                )
 (maskDoor:setCycle(End self)) (send gEgo:setCycle(Beg self))  )
            )
            (case 3
                ( )
            )
            (case 4
                ((send gEgo:
                    view(267)
                    loop(1)
                    cel(0)
                    setCycle(CT 2 1 self)
                )
  )
            )
            (case 5
                (proc0_10(182 5) (oxygenMask:setLoop(4)) (send gEgo:setCycle(End self))  )
            )
            (case 6
                ((send gSq5Music2:
                    number(103)
                    loop(1)
                    play()
                )
 (maskDoor:setCycle(Beg self))  )
            )
            (case 7
                (proc0_6(0 6) (oxygenMask:dispose()) (maskDoor:stopUpd()) (send gEgo:get(21)) (send gSQ5:handsOn()) (self:dispose()) )
            )
        )
    )

)
(instance cStuff of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gSQ5:handsOff()) (send gEgo:setHeading(90 self))  )
            )
            (case 1
                ((send gSq5Music2:
                    number(4800)
                    loop(-1)
                    play()
                )
 (cDoor:
                    init()
                    setCycle(End self)
                )
  )
            )
            (case 2
                ((chick:
                    init()
                    posn(1 117)
                    setMotion(MoveTo 67 157 self)
                    setCycle(Fwd)
                )
  )
            )
            (case 3
                ((cDoor:setCycle(Beg)) (chick:setMotion(MoveTo 193 186 self))  )
            )
            (case 4
                ((cDoor:dispose()) (chick:dispose()) (send gSq5Music2:stop()) (send gSQ5:handsOn()) (self:dispose()) )
            )
        )
    )

)
(instance bang of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (
                (if (< (send gSQ5:detailLevel()) (cliffy:detailLevel()))
                    (cliffy:stopUpd())
                    --state
                )(else
                    (cliffy:startUpd())
                )
 = cycles 1  )
            )
            (case 1
                ((cliffy:
                    cel(0)
                    setCycle(End self)
                )
  )
            )
            (case 2
                (= state (- state 3) 
                (if (not (send gRoom:script))
                    (send gSq5Music2:
                        number(230)
                        loop(1)
                        play(self)
                    )
                )(else
                    = cycles 1
                )
 )
            )
        )
    )

)
(instance oxygenMask of View
    (properties
        x 183
        y 90
        approachX 172
        approachY 141
        view 251
        loop 3
        priority 4
        signal 16400
    )
)
(instance maskDoor of Prop
    (properties
        x 183
        y 90
        noun 15
        approachX 172
        approachY 141
        view 251
        loop 2
        priority 5
        signal 20497
    )

    (method (init param1)
        (self:approachVerbs(4 1))
        (super:init(rest param1))
    )


    (method (doVerb param1 param2)
        (switch (param1)
            (case 4
                (
                (if ((send gEgo:has(21)))
                    (send gTestMessager:say(15 4 1 0))
                )(else
                    (send gRoom:setScript(getMask))
                )
 )
            )
            (default 
                ((super:doVerb(param1 rest param2)) )
            )
        )
    )

)
(instance cliffy of Actor
    (properties
        x 10
        y 143
        noun 17
        view 191
        loop 2
        cel 2
        scaleSignal 1
        detailLevel 3
    )

    (method (init param1)
        (if (== gGModNum 801)
            (self:
                view(268)
                loop(1)
                cel(0)
                posn(65486 65498)
                ignoreActors(1)
                setPri(13)
            )
            = global130 3
            (super:init(rest param1))
        )(else
            (if (== global130 3)
                (self:
                    setScale(Scaler 134 81 164 134)
                    setScript(bang)
                )
                (super:init(rest param1))
            )
        )
    )

)
(instance cDoor of Prop
    (properties
        x 4
        y 102
        view 251
        loop 5
        priority 8
        signal 16400
    )
)
(instance chick of Actor
    (properties
        y 116
        yStep 4
        view 970
        signal 18432
        xStep 6
    )
)
(instance podRmDoors of Prop
    (properties
        x 38
        y 83
        noun 1
        view 266
        loop 1
    )

    (method (setCycle param1 param2)
        (if (param1 and not cel)
            (send gSq5Music2:
                number(108)
                loop(1)
                play()
            )
        )
        (super:setCycle(param1 rest param2))
    )

)
(instance podDoor of Prop
    (properties
        x 127
        y 161
        z 60
        approachX 142
        approachY 156
        view 262
        priority 10
        signal 16400
    )

    (method (init)
        (self:
            approachVerbs(4)
            setPri(10)
        )
        (if (proc0_1(118))
            (self:
                setLoop(1)
                cel(10)
            )
        )(else
            (self:
                setLoop(0)
                cel(0)
            )
        )
        (if (not proc0_1(88))
            (super:init())
        )
    )


    (method (doVerb param1 param2)
        (switch (param1)
            (case 4
                (
                (switch (gEurekaCurLocation)
                    (case 15
                        (
                        (if (proc0_1(87))
                            (send gTestMessager:say(13 0 0 0))
                        )(else
                            (send gRoom:setScript(sGetInPod))
                        )
 )
                    )
                    (case 14
                        ((send gRoom:setScript(sGetInPod))  )
                    )
                    (default 
                        ((send gTestMessager:say(14 0 0 0)) )
                    )
                )
  )
            )
            (default 
                ((super:doVerb(rest param2)) )
            )
        )
    )

)
(instance pod of Prop
    (properties
        x 161
        y 154
        noun 5
        view 251
        loop 1
        cel 3
        priority 10
        signal 16401
        cycleSpeed 12
    )

    (method (init)
        (if (== gGModNum 801)
            (self:
                view(268)
                loop(4)
                cel(0)
                x(63)
                y(139)
            )
            (super:init())
        )(else
            (if (proc0_1(88) or (proc0_1(84) and (<> (eureka:state) 3)))
                (self:dispose())
            )(else
                (if (proc0_1(118))
                    (self:
                        view(251)
                        loop(1)
                        cel(4)
                    )
                    (super:init())
                    (podDoor:init())
                )(else
                    (self:stopUpd())
                    (super:init())
                )
            )
        )
    )


    (method (setCycle param1 param2)
        (if (paramTotal and param1)
            (send gSq5Music2:
                number(106)
                loop(1)
                play()
            )
        )
        (super:setCycle(param1 rest param2))
    )

)
(instance elevatorTop of Actor
    (properties
        x 249
        y 88
        noun 4
        view 251
        priority 10
        signal 18449
    )

    (method (setMotion param1 param2)
        (if (paramTotal and param1)
            (send gSq5Music2:
                number(108)
                loop(1)
                play()
            )
        )
        (super:setMotion(param1 rest param2))
    )

)
(instance elevatorBottom of View
    (properties
        x 251
        y 128
        noun 4
        view 251
        cel 1
        priority 9
        signal 18449
    )

    (method (doit)
        (self:posn(x (+ 128 (/ (- 88 (elevatorTop:y)) 2))))
        (super:doit())
    )

)
(instance elevLights of Prop
    (properties
        x 273
        y 97
        view 266
        priority 15
        signal 16
    )
)
(instance rogThink of Actor
    (properties
        x 240
        y 170
        view 267
        loop 2
        priority 12
        signal 16400
    )
)
(instance rogArm of Prop
    (properties
        x sRogPushButton
        y 112
        view 267
        loop 3
        priority 13
        signal 16400
    )
)
(instance oxyTank of Prop
    (properties
        x 167
        y 95
        noun 7
        approachX 158
        approachY 133
        view 251
        loop 1
        priority 6
        signal 16400
    )

    (method (init param1)
        (self:
            cel(
                (if ((send gEgo:has(9)))
                    2
                )(else
                    6
                )
)
            approachVerbs(4 1 25)
        )
        (super:init(rest param1))
        (self:stopUpd())
    )


    (method (doVerb param1 param2)
        (if (== (self:cel) 2)
            (self:noun(7))
        )(else
            (self:noun(8))
        )
        (switch (param1)
            (case 4
                (
                (if ((send gEgo:has(9)))
                    (send gRoom:setScript(returnTank))
                )(else
                    (send gRoom:setScript(getTank))
                )
 )
            )
            (case 25
                ((send gRoom:setScript(returnTank))  )
            )
            (default 
                ((super:doVerb(param1 rest param2)) )
            )
        )
    )

)
(instance theKey of View
    (properties
        x 83
        y 64
        sightAngle 360
        view 252
        loop 1
        cel 1
        priority 15
        signal 16
    )

    (method (show param1 param2)
        (self:
            y(local5[param1])
            setLoop(param1)
            setCel(0)
        )
        (super:show(rest param2))
    )

)
(instance cDoorF of Feature
    (properties
        y 98
        nsTop 98
        nsBottom 125
        nsRight 8
        approachY 150
    )

    (method (init)
        (self:approachVerbs(4))
        (super:init())
    )


    (method (doVerb param1)
        (if (== param1 4)
            (send gRoom:setScript(cStuff))
        )(else
            (send gRoom:doVerb(param1))
        )
    )

)
(instance console of Feature
    (properties
        x 274
        y 225
        z 50
        noun 9
        onMeCheck 2
        approachX 240
        approachY 170
        approachDist 2
    )

    (method (init)
        (self:approachVerbs(4 1))
        (super:init())
    )


    (method (doVerb param1 param2)
        (switch (param1)
            (case 4
                ((send gRoom:setScript(sPopUpConsole))  )
            )
            (default 
                ((super:doVerb(param1 rest param2)) )
            )
        )
    )

)
(instance cliffySuit of Feature
    (properties
        x 212
        y 117
        noun 2
        nsTop 95
        nsLeft 205
        nsBottom 139
        nsRight 220
        sightAngle 40
    )
)
(instance otherSuit of Feature
    (properties
        x 233
        y 117
        noun 6
        nsTop 95
        nsLeft 228
        nsBottom 139
        nsRight 239
        sightAngle 40
    )
)
(instance bayDoorsF of Feature
    (properties
        x 70
        y 110
        noun 1
        onMeCheck 16
    )
)
(instance turboLift of Feature
    (properties
        x 277
        y 104
        noun 4
        nsTop 60
        nsLeft 240
        nsBottom 148
        nsRight 315
        sightAngle 40
        approachX 285
        approachY 152
        approachDist 55
    )

    (method (init)
        (turboLift:approachVerbs(3 4))
        (super:init())
    )


    (method (doVerb param1 param2)
        (switch (param1)
            (case 3
                (
                (if (not local4)
                    (send gRoom:setScript(sExitNorth))
                )
 )
            )
            (case 4
                (
                (if (not local4)
                    (send gRoom:setScript(sExitNorth))
                )
 )
            )
            (default 
                ((super:doVerb(param1 rest param2)) )
            )
        )
    )

)
(instance popUpConsole of Inset
    (properties
        view 252
        x 60
        y 25
        disposeNotOnMe 1
    )

    (method (init param1)
        (super:init(rest param1))
        (send gKeyDownHandler:addToFront(self))
        (send gMouseDownHandler:addToFront(self))
        (theKey:
            init()
            show(1)
            stopUpd()
        )
        = local0 1
    )


    (method (doit param1)
        (if (local1)
            (if (local0)
                (send gSq5Music2:
                    number(124)
                    loop(1)
                    play()
                )
            )
            = local1 0
            (self:setScript(sDoButton))
        )
        (super:doit(rest param1))
    )


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


    (method (handleEvent pEvent param2)
        (var pEventMessage)
        (if ((User:controls))
            = pEventMessage (send pEvent:message)
            (if ((& (send pEvent:type) $0004) or (& (send pEvent:type) $0040))
                (switch (pEventMessage)
                    (case 13
                        = local1 1
                        (send pEvent:claimed(1))
                        return 
                    )
                    (case 27
                        = local1 1
                        = local0 0
                        (send pEvent:claimed(1))
                        return 
                    )
                    (case 5
                        (theKey:show((= local0 
                                (if (>= local0 4)
                                    1
                                )(else
                                    ++local0
                                )
)))
                        (send gSQ5:setCursor(982 1 88 (+ local5[local0] 5)))
                        (send pEvent:claimed(1))
                        return 
                    )
                    (case 1
                        (theKey:show((= local0 
                                (if (<= local0 1)
                                    4
                                )(else
                                    --local0
                                )
)))
                        (send gSQ5:setCursor(982 1 88 (+ local5[local0] 5)))
                        (send pEvent:claimed(1))
                        return 
                    )
                    (default 
                        (super:handleEvent(pEvent rest param2))
                    )
                )
            )(else
                (if (((& (send pEvent:type) $0001) and (<> (= local0 localproc_0170(pEvent)) -1)) and not (send pEvent:modifiers))
                    (send gSQ5:handsOff())
                    (theKey:show(local0))
                    = local1 1
                    (send pEvent:claimed(1))
                )(else
                    (super:handleEvent(pEvent rest param2))
                )
            )
        )(else
            (super:handleEvent(pEvent rest param2))
        )
    )

)
