(version 2)
(include "sci.sh")
(exports
    0 rm016
)
(use "Main")
(use "Class_255_0")
(use "Cycle")
(use "Game")
(use "TheMenuBar")
(use "Feature")
(use "Obj")
(script 16)



(procedure (localproc_0854 param1 param2 param3 param4)
    (if (< global598 16)
        = param4 15
    )
    Display(param1 106 310 100 param2 param3 105 600 102 param4 101 1)
)


(procedure (localproc_0880 param1 param2 param3 param4)
    (if (< global598 16)
        = param4 15
    )
    Display(param1 100 param2 param3 105 600 102 param4)
)


(instance public rm016 of Rm
    (properties
        picture 161
        style 0
    )

    (method (init)
        (var temp0[50])
        (self:setRegions(701))
        proc0_2()
        = global159 1
        (TheMenuBar:hide())
        (SL:disable())
        Load(128 40)
        Load(128 42)
        Load(129 161)
        Load(129 162)
        Load(129 163)
        Load(129 164)
        (super:init())
        (if ((send ((send global9:at(3))):ownedBy(14)) and (send ((send global9:at(1))):ownedBy(14)))
            = global136 4
            (self:setScript(ReactorIn))
        )(else
            = global136 1
            (self:setScript(ReactorNotIn))
        )
        = global193 1
    )


    (method (doit)
        (super:doit())
    )


    (method (handleEvent pEvent)
        (if ((send pEvent:claimed))
            return 
        )
        (if ((send pEvent:type))
            = global159 0
            (send pEvent:claimed(1))
            = global193 0
            (send global2:newRoom(14))
        )
    )

)
(instance ReactorNotIn of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                localproc_0854("ACCESS DENIED" 1 25 4)
                localproc_0854("-----------" 1 31 2)
                localproc_0854(">> POWER CRITICALLY LOW <<\n\n AUX. REACTOR NOT ON-LINE" 1 55 12)
                localproc_0854("INSUFFICIENT POWER TO COMMENCE\n    WITH SYSTEMS CHECK" 1 85 12)
                localproc_0854("USING STORED POWER\n   BELOW 10%" 1 155 14)
                = seconds 5
            )
            (case 1
                = global159 0
                proc0_3()
                = global193 0
                (send global2:newRoom(14))
            )
        )
    )

)
(instance ReactorIn of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                localproc_0854("SYSTEMS CHECK" 1 25 15)
                localproc_0854("IN PROGRESS" 1 35 15)
                localproc_0854(">> POWER LEVEL NOMINAL <<\n\n   AUX. REACTOR ON-LINE" 1 55 10)
                = seconds 5
            )
            (case 1
                (send global2:drawPic(164))
                localproc_0880("AUXILIARY REACTOR:" 100 162 14)
                (diagFlash1:
                    loop(4)
                    cel(0)
                    posn(151 114)
                    init()
                    setCycle(Fwd)
                )
                = seconds 4
            )
            (case 2
                localproc_0880("AUXILIARY REACTOR:" 100 162 2)
                localproc_0880("NOMINAL" 212 162 10)
                = seconds 3
            )
            (case 3
                (send global2:drawPic(162))
                (diagFlash1:
                    loop(1)
                    cel(0)
                    posn(107 119)
                    init()
                    setCycle(Fwd)
                )
                (diagFlash2:
                    loop(0)
                    cel(0)
                    posn(182 137)
                    init()
                    setCycle(Fwd)
                )
                localproc_0880("LANDING GEAR" 100 162 14)
                = seconds 3
            )
            (case 4
                localproc_0880("LANDING GEAR" 100 162 2)
                localproc_0880("NOMINAL" 212 162 10)
                = seconds 3
            )
            (case 5
                (diagFlash1:hide())
                (diagFlash2:hide())
                (if (== global135 4)
                    (send global2:setScript(MotivIn))
                )(else
                    (send global2:setScript(MotivNotIn))
                )
            )
        )
    )

)
(instance MotivIn of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send global2:drawPic(163))
                (diagArea:
                    loop(2)
                    posn(239 108)
                    setPri(7)
                    stopUpd()
                )
                localproc_0880("WARP MOTIVATOR:" 89 150 14)
                (diagArea:
                    init()
                    stopUpd()
                )
                (diagFlash1:
                    setLoop(3)
                    cel(0)
                    posn(233 99)
                    setPri(15)
                    show()
                    cycleSpeed(1)
                    setCycle(Fwd)
                )
                = seconds 3
            )
            (case 1
                localproc_0880("WARP MOTIVATOR " 89 150 2)
                localproc_0880("NOMINAL" 100 162 10)
                = seconds 4
            )
            (case 2
                = global159 0
                proc255_0(16 0)
                proc0_3()
                = global193 0
                (send global2:newRoom(14))
            )
        )
    )

)
(instance MotivNotIn of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send global2:drawPic(163))
                (diagArea:
                    loop(2)
                    posn(239 108)
                    setPri(7)
                    stopUpd()
                )
                = cycles 2
            )
            (case 1
                localproc_0880("WARP MOTIVATOR:" 89 150 14)
                (diagArea:
                    init()
                    stopUpd()
                )
                (diagFlash1:
                    setLoop(3)
                    cel(0)
                    posn(233 99)
                    setPri(15)
                    show()
                    cycleSpeed(1)
                    setCycle(Fwd)
                )
                = seconds 4
            )
            (case 2
                (diagEnlarge:
                    posn(233 93)
                    setLoop(0)
                    cel(0)
                    init()
                )
                = seconds 1
            )
            (case 3
                (diagFlash2:
                    posn((diagEnlarge:xLast) (diagEnlarge:yLast))
                    loop(0)
                    cel((diagEnlarge:cel))
                    init()
                    setCycle(0)
                )
                (diagEnlarge:
                    cel(+ (diagEnlarge:cel) 1)
                    posn(218 102)
                )
                = cycles 3
            )
            (case 4
                (diagFlash2:
                    posn((diagEnlarge:xLast) (diagEnlarge:yLast))
                    loop(0)
                    cel((diagEnlarge:cel))
                )
                (diagEnlarge:
                    cel(+ (diagEnlarge:cel) 1)
                    posn(200 110)
                )
                = cycles 3
            )
            (case 5
                (diagFlash2:
                    posn((diagEnlarge:xLast) (diagEnlarge:yLast))
                    loop(0)
                    cel((diagEnlarge:cel))
                )
                (diagEnlarge:
                    cel(+ (diagEnlarge:cel) 1)
                    posn(172 119)
                )
                = cycles 3
            )
            (case 6
                (diagFlash2:
                    posn((diagEnlarge:xLast) (diagEnlarge:yLast))
                    loop(0)
                    cel((diagEnlarge:cel))
                )
                (diagEnlarge:
                    cel(+ (diagEnlarge:cel) 1)
                    posn(142 130)
                )
                = cycles 3
            )
            (case 7
                (diagFlash2:
                    posn((diagEnlarge:xLast) (diagEnlarge:yLast))
                    loop(0)
                    cel((diagEnlarge:cel))
                )
                (diagEnlarge:
                    cel(+ (diagEnlarge:cel) 1)
                    posn(101 145)
                )
                = cycles 3
            )
            (case 8
                (diagFlash2:
                    posn((diagEnlarge:xLast) (diagEnlarge:yLast))
                    loop(0)
                    cel((diagEnlarge:cel))
                )
                (diagEnlarge:
                    setLoop(1)
                    cel(0)
                    posn(47 184)
                    cycleSpeed(2)
                    setCycle(Fwd)
                )
                = global186 1
                = cycles 3
            )
            (case 9
                (diagFlash2:hide())
                = seconds 2
            )
            (case 10
                localproc_0880("WARP MOTIVATOR " 89 150 4)
                localproc_0880("MALFUNCTION" 100 162 12)
                localproc_0880("UNIT NOT INSTALLED" 89 173 14)
                = seconds 7
            )
            (case 11
                = global159 0
                proc0_3()
                = global193 0
                (send global2:newRoom(14))
            )
        )
    )

)
(instance diagFlash1 of Act
    (properties)

    (method (init)
        (super:init())
        (self:
            view(40)
            ignoreActors(1)
        )
    )

)
(instance diagFlash2 of Act
    (properties)

    (method (init)
        (super:init())
        (self:
            view(40)
            ignoreActors(1)
        )
    )

)
(instance diagArea of Act
    (properties)

    (method (init)
        (super:init())
        (self:
            view(40)
            ignoreActors(1)
        )
    )

)
(instance diagEnlarge of Act
    (properties)

    (method (init)
        (super:init())
        (self:
            view(42)
            ignoreActors(1)
        )
    )

)
