(version 2)
(include "sci.sh")
(exports
    0 rm062
)
(use "Main")
(use "Class_255_0")
(use "Cycle")
(use "Game")
(use "TheMenuBar")
(use "Obj")
(script 62)



(instance public rm062 of Rm
    (properties
        picture 62
        south 67
        west 61
    )

    (method (init)
        (var temp0[50])
        proc0_3()
        (self:setRegions(600))
        Load(128 63)
        (super:init())
        (TheMenuBar:draw())
        (SL:enable())
        (switch (gNorth)
            (case 61
                (send gEgo:
                    setStep(4 3)
                    view(63)
                    posn(2 (send gEgo:y))
                    init()
                )
            )
            (case 67
                (send gEgo:
                    setStep(4 3)
                    view(63)
                    posn((send gEgo:x) 187)
                    init()
                )
            )
            (default 
                Load(132 71)
                (self:setScript(landScript))
            )
        )
    )


    (method (doit)
        (var gEgoOnControl)
        (super:doit())
        (if (> global593 15)
            (self:setScript(CrackUp))
        )
        (if (== (send global2:script) 0)
            = gEgoOnControl (send gEgo:onControl())
            (if (== gEgoOnControl 16385)
                (send global2:newRoom(14))
            )
            (if (== gEgoOnControl 3)
                (send gEgo:
                    setPri(7)
                    posn(+ (send gEgo:x) 6 (send gEgo:y))
                )
                = global180 1
            )(else
                (if (((== gEgoOnControl 5) or (== gEgoOnControl 7)) or (== gEgoOnControl 13))
                    (send gEgo:
                        setPri(5)
                        posn(
                            (if (< (send gEgo:x) 100)
                                - (send gEgo:x) 6
                            )(else
                                + (send gEgo:x) 6
                            )
 (send gEgo:y))
                    )
                    = global180 1
                )(else
                    (if (== gEgoOnControl 9)
                        (send gEgo:
                            setPri(3)
                            posn((send gEgo:x) - (send gEgo:y) 6)
                        )
                        = global180 1
                    )(else
                        (if ((== gEgoOnControl 17) or (== gEgoOnControl 19))
                            (send gEgo:
                                setPri(9)
                                posn(+ (send gEgo:x) 12 (send gEgo:y))
                            )
                            = global180 1
                        )(else
                            (if ((== gEgoOnControl 33) or (== gEgoOnControl 37))
                                (send gEgo:
                                    setPri(5)
                                    posn(
                                        (if (< (send gEgo:x) 100)
                                            - (send gEgo:x) 6
                                        )(else
                                            + (send gEgo:x) 18
                                        )
 (send gEgo:y))
                                )
                                = global180 1
                            )
                        )
                    )
                )
            )
        )
    )


    (method (handleEvent pEvent)
        (super:handleEvent(pEvent))
        (if ((<> (send pEvent:type) 128) or (send pEvent:claimed))
            return 
        )
        (switch ((send pEvent:type))
            (case 128
                (if (Said('enter,go,get[<in]/craft,ramp,door') or Said('climb/ramp'))
                    proc255_0(62 0)
                )
            )
        )
    )


    (method (newRoom newRoomNumber)
        (if (== script 0)
            (send gEgo:setStep(3 2))
            (if (global256)
                ++global593
            )
            (if (> global593 15)
                (self:setScript(CrackUp))
            )(else
                (super:newRoom(newRoomNumber))
            )
        )
    )

)
(instance landScript of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gEgo:
                    setStep(4 3)
                    view(63)
                    setLoop(2)
                    posn(164 142)
                    setPri(-1)
                    illegalBits(0)
                    edgeHit(0)
                    init()
                )
                = seconds 2
            )
            (case 1
                (send gEgo:setMotion(MoveTo 151 162 self))
            )
            (case 2
                (send gEgo:
                    setLoop(-1)
                    setPri(-1)
                    illegalBits(-32768)
                )
                proc0_3()
                (if (global182)
                    proc255_0(62 1)
                    = global171 0
                )(else
                    proc255_0(62 2)
                    = global171 10
                )
                (send gLongSong:
                    number(71)
                    loop(-1)
                    priority(0)
                    play()
                )
                (send global2:setScript(0))
            )
        )
    )

)
(instance CrackUp of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                = global593 0
                proc0_2()
                ShakeScreen(30 3)
                (send gEgo:dispose())
                proc0_10()
                proc255_0(62 3)
                proc0_17(0 0 1 2)
            )
        )
    )

)
