(version 2)
(include "sci.sh")
(exports
    0 rm470
    1 proc470_1
    2 climbDown
    3 climbRope
)
(use "Main")
(use "TellerIcon")
(use "bridgeIcon")
(use "PolyPath")
(use "Polygon")
(use "CueObj")
(use "n958")
(use "StopWalk")
(use "Cycle")
(use "Game")
(use "User")
(use "Obj")
(script 470)


(local
    local0
    local1
    local2
    local3
    local4
    local5
    local6
    local7
    local8
    local9[20] = (0 0 0 0 0 0 4 1 14 1 7 8 0 11 0 19 5 25 )
    local29[8] = (0 9 20 -2 -3 -1 42 999 )
    local37[3]
    local40[8] = (0 5 6 7 8 56 55 999 )
    local48[5] = (0 21 54 53 999 )
    local53[8] = (0 18 24 17 15 51 52 999 )
    local61[2]

)
(procedure public (proc470_1)
    (rope:approachVerbs(4))
    (rope2:approachVerbs(4))
    (bridge:approachVerbs(4))
    (send gQg3Walkers:delete(global2))
)


(instance public rm470 of Rm
    (properties
        noun 3
        picture 470
        east 420
        vanishingY -300
    )

    (method (init)
        proc0_2()
        Load(143 470)
        proc958_0(128 470 39 7 12)
        (if (== global362 2)
            Load(rsVIEW 30)
        )(else
            (if (== gGClientModNum 460)
                proc958_0(128 475 472 473)
            )(else
                proc958_0(128 475 972 971 471 474)
            )
        )
        (send global2:addObstacle((send ((Polygon:new())):
                type(2)
                init(6 139 71 139 74 146 8 146)
                yourself()
            )
 (send ((Polygon:new())):
                type(2)
                init(257 121 278 121 307 145 249 148 234 132)
                yourself()
            )
 (send ((Polygon:new())):
                type(2)
                init(0 0 319 0 319 96 0 96)
                yourself()
            )
))
        = local37[0] @local29
        = local37[1] 999
        (egoActions:init(gOwner @local29 @local37))
        (rope:
            approachVerbs(4)
            init()
        )
        (rope2:
            approachVerbs(4)
            init()
        )
        (bridge:
            approachVerbs(4)
            init()
        )
        (wall:init())
        (bridge:init())
        (rock:init())
        (leftTreeTop:init())
        (rightTreeTop:init())
        (send (ScriptID(34 0)):
            x(200)
            textX(-175)
            talkWidth(135)
        )
        (if (== gGClientModNum 460)
            (send global2:setScript(initContest))
        )(else
            (if (== gGClientModNum 480)
                (send global2:setScript(enterRoomL))
            )(else
                (send global2:setScript(enterRoomB))
            )
        )
        (super:init())
    )


    (method (doit param1)
        (if (script)
            0
        )(else
            (if ((((send gOwner:mover) and not (send (ScriptID(34 1)):script)) and (== (send gOwner:view) 12)) and (< (send gOwner:y) 90))
                (egoActions:doVerb(3))
            )(else
                (if (>= (send gOwner:x) 315)
                    (send global2:setScript(exitTo420))
                )(else
                    (if (>= (send gOwner:y) 183)
                        (send global2:setScript(walkOut))
                    )(else
                        (if ((not proc0_6(59) and (send gGQg3KDHandler:contains(ScriptID(34 1)))) and local1)
                            proc0_4(59)
                            = local1 0
                            (send gQg3Messager:say(2 6 10))
                        )(else
                            (if (<= (send gOwner:x) 5)
                                (send global2:setScript(exitTo480))
                            )
                        )
                    )
                )
            )
        )
        (super:doit(rest param1))
    )


    (method (dispose)
        (send gQg3Walkers:delete(global2))
        (if (<> (send gLongSong:number) 160)
            (send gLongSong:
                setLoop(-1)
                number(160)
                play(127)
            )
        )
        (send gOwner:setScript(0))
        proc958_0(0 34 39 56 53 471)
        (super:dispose())
    )


    (method (doVerb theVerb param2)
        (switch (theVerb)
            (case 3
                (if (< (send gOwner:y) 90)
                    (egoActions:doVerb(3))
                )(else
                    (super:doVerb(theVerb rest param2))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )


    (method (notify param1 param2)
        (var temp0)
        (switch (param1)
            (case 1
                (if (> paramTotal 1)
                    = local6 param2
                )
                = temp0 local6
            )
            (case 3
                (if (> paramTotal 1)
                    = local0 param2
                    (switch (param2)
                        (case 3
                            = local61[0] @local48
                            (uhuraTeller:init(ScriptID(34 1) @local48 @local61))
                        )
                        (case 4
                            = local61[0] @local53
                            (uhuraTeller:init(ScriptID(34 1) @local53 @local61))
                        )
                        (case 10
                            (send (ScriptID(34 1)):dispose())
                        )
                    )
                )
                = temp0 local0
            )
        )
        return temp0
    )

)
(instance egoActions of Teller
    (properties)

    (method (showDialog)
        (super:showDialog(-2 
            (if ((send gGQg3KDHandler:contains(ScriptID(34 1))) and local6)
                not local4
            )(else
                0
            )
 -3 
            (if ((send gGQg3KDHandler:contains(ScriptID(34 1))) and local6)
                not local4
            )(else
                0
            )
 -1 (send gGQg3KDHandler:contains(ScriptID(34 1))) 20 
            (if (== local0 3)
                (send gGQg3KDHandler:contains(ScriptID(34 1)))
            )(else
                0
            )
 42 
            (if (== local0 4)
                (send gGQg3KDHandler:contains(ScriptID(34 1)))
            )(else
                0
            )
 9 
            (if ((== local0 2) or (== local0 1))
                (send gGQg3KDHandler:contains(ScriptID(34 1)))
            )(else
                0
            )
))
    )


    (method (doChild)
        return 
            (switch (query)
                (case -2
                    = local4 1
                    = local7 global209
                    proc471_6(0 local7)
                    (send global2:setScript(0))
                    (send (ScriptID(34 1)):setScript(ScriptID(471 3)))
                    return 0
                )
                (case -3
                    (send global2:setScript(uhuraLeave))
                    return 0
                )
                (case -1
                    (send global2:setScript(uhuraLeave))
                    return 0
                )
            )
    )


    (method (doVerb theVerb)
        (var temp0)
        (switch (theVerb)
            (case 2
                (super:doVerb(theVerb))
            )
            (case 3
                (send global2:setScript(walkBridge))
                (send ((User:curEvent)):claimed(1))
            )
            (default 
                (send gOwner:doVerb(theVerb))
            )
        )
    )

)
(instance uhuraTeller of Teller
    (properties)

    (method (showDialog)
        (super:showDialog(56 (== local0 1) 55 (== local0 2)))
    )

)
(instance uhuraInstruct of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_4(152)
                proc0_2()
                (send gOwner:setMotion(PolyPath 160 160 self))
            )
            (case 1
                (send gOwner:setHeading(0))
                (send (ScriptID(34 1)):setMotion(PolyPath 287 144 self))
            )
            (case 2
                (send (ScriptID(34 1)):
                    view(471)
                    setLoop(0)
                    cel(0)
                    setPri(10)
                    setCycle(Fwd)
                    setScale()
                    scaleX(109)
                    scaleY(109)
                    setStep(3 3)
                    setMotion(MoveTo 287 132 self)
                )
            )
            (case 3
                (send (ScriptID(34 1)):
                    setLoop(2)
                    cel(0)
                    x(287)
                    y(105)
                    setCycle(End self)
                )
            )
            (case 4
                (send (ScriptID(34 1)):
                    setLoop(3)
                    cel(0)
                    x(292)
                    y(76)
                    setCycle(End self)
                )
            )
            (case 5
                (send gQg3Messager:say(2 6 12 0 self))
            )
            (case 6
                (send (ScriptID(34 1)):
                    setStep(3 2)
                    setLoop(1)
                    setCycle(Walk)
                    setMotion(MoveTo 160 (send (ScriptID(34 1)):y) self)
                )
            )
            (case 7
                (send gQg3Messager:say(2 6 13 0 self))
            )
            (case 8
                = ticks 30
            )
            (case 9
                = local7 global209
                proc471_6(0 local7)
                (self:setScript(ScriptID(471 5) self 1))
            )
            (case 10
                = ticks 30
            )
            (case 11
                (send gQg3Messager:say(2 6 15 0 self))
            )
            (case 12
                = ticks 30
            )
            (case 13
                (self:setScript(ScriptID(471 5) self 2))
            )
            (case 14
                = ticks 30
            )
            (case 15
                (send gQg3Messager:say(2 6 16 0 self))
            )
            (case 16
                = ticks 30
            )
            (case 17
                (self:setScript(ScriptID(471 5) self 4))
            )
            (case 18
                = ticks 30
            )
            (case 19
                (send gQg3Messager:say(2 6 17 0 self))
            )
            (case 20
                (send gQg3Messager:say(2 6 18 0 self))
            )
            (case 21
                (send (ScriptID(34 1)):
                    view(471)
                    setLoop(4)
                    cel(0)
                )
                = local5 0
                = cycles 1
            )
            (case 22
                (send (ScriptID(34 1)):
                    cel(++local5)
                    x(+ (send (ScriptID(34 1)):x) local9[(* local5 2)])
                    y(+ (send (ScriptID(34 1)):y) local9[(+ (* local5 2) 1)])
                )
                = ticks 6
            )
            (case 23
                (if (== local5 8)
                    = cycles 1
                )(else
                    (self:changeState(--state))
                )
            )
            (case 24
                (send gQg3Messager:say(2 6 19 0 self))
            )
            (case 25
                (send (ScriptID(34 1)):
                    view(971)
                    setLoop(-1)
                    setScale(200)
                    setCycle(StopWalk 969)
                    setMotion(PolyPath (send (ScriptID(34 1)):x) 250 self)
                )
            )
            (case 26
                = local0 10
                proc0_3()
                (send (ScriptID(34 1)):dispose())
            )
        )
    )

)
(instance uhuraLeave of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gQg3Messager:say(1 5 1 0 self))
            )
            (case 1
                (send (ScriptID(34 1)):setMotion(PolyPath (send (ScriptID(34 1)):x) 250 self))
            )
            (case 2
                (if (<> (send gLongSong:number) 160)
                    (send gLongSong:changeTo(160))
                )
                (send (ScriptID(34 1)):dispose())
                proc0_3()
                = local0 10
                (if (proc0_6(152) and (<= (send gOwner:y) 90))
                    proc471_7()
                )
                (self:dispose())
            )
        )
    )

)
(instance enterRoomL of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gOwner:
                    setScale(200)
                    x(-10)
                    y(170)
                    actions(egoActions)
                    noun(1)
                    normalize()
                    init()
                    setMotion(PolyPath 50 170 self)
                )
            )
            (case 1
                proc0_3()
                (self:dispose())
            )
        )
    )

)
(instance enterRoomB of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gOwner:
                    setScale(200)
                    x(160)
                    y(210)
                    actions(egoActions)
                    noun(1)
                    normalize()
                    init()
                    setMotion(PolyPath 160 175 self)
                )
            )
            (case 1
                proc0_3()
                (self:dispose())
            )
        )
    )

)
(instance exitTo480 of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gOwner:setMotion(PolyPath (- (send gOwner:x) 30) (send gOwner:y) self))
            )
            (case 1
                (send global2:newRoom(480))
            )
        )
    )

)
(instance exitTo420 of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gOwner:setMotion(PolyPath (+ (send gOwner:x) 30) (send gOwner:y) self))
            )
            (case 1
                (send global2:newRoom(420))
            )
        )
    )

)
(instance walkOut of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gOwner:setMotion(PolyPath (send gOwner:x) 210 self))
            )
            (case 1
                (send global2:newRoom(420))
            )
        )
    )

)
(instance uhuraEnter of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (if ((local1 and (== global362 0)) and not proc0_6(59))
                    = local1 0
                    = local0 2
                    (send gQg3Messager:say(2 6 10 0 self))
                    = local2 0
                )(else
                    (if (== local0 1)
                        (send gQg3Messager:say(2 6 4 0 self))
                        = local2 1
                    )(else
                        = ticks 1
                    )
                )
            )
            (case 1
                (send gLongSong:changeTo(460))
                = local61[0] @local40
                (uhuraTeller:init(ScriptID(34 1) @local40 @local61))
                (send (ScriptID(34 1)):
                    x(180)
                    y(250)
                    actions(uhuraTeller)
                    setScale(200)
                    noun(2)
                    init()
                    setCycle(StopWalk 969)
                    setMotion(PolyPath 190 180 self)
                )
            )
            (case 2
                (if (< (send gOwner:y) 90)
                    (send gQg3Messager:say(2 6 11 0 self))
                )(else
                    = ticks 1
                )
            )
            (case 3
                (if (local2)
                    proc0_3()
                )
                (self:dispose())
            )
        )
    )

)
(instance uhuraEnterC of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gLongSong:changeTo(460))
                = cycles 3
            )
            (case 1
                proc0_2()
                = local6 1
                (send gQg3Messager:say(2 6 
                    (if (== local0 3)
                        20
                    )(else
                        42
                    )
 0 self 470))
            )
            (case 2
                (send (ScriptID(34 1)):
                    x(180)
                    y(250)
                    setLoop(-1)
                    show()
                    setCycle(StopWalk 969)
                    setMotion(PolyPath 180 170 self)
                )
            )
            (case 3
                proc0_13()
                (self:dispose())
            )
        )
    )

)
(instance walkBridge of Script
    (properties)

    (method (changeState newState)
        (var temp0, temp1, temp2)
        (switch (= state newState)
            (case 0
                proc0_2()
                (switch (local7)
                    (case 1
                        = temp0 150
                    )
                    (case 2
                        = temp0 175
                    )
                    (default 
                        = temp0 200
                    )
                )
                = local8 (- 285 (send gOwner:x))
                (send gOwner:useSkill(2 100))
                (if (> (send gOwner:trySkill(2 temp0)) 0)
                    = temp1 local8
                    = local1 
                        (if (>= gGOwnerMaxStamina[2] temp0)
                            1
                        )(else
                            -1
                        )
                )(else
                    = local1 0
                    = temp1 (/ (* (- local8 50) (+ 100 (- gGOwnerMaxStamina[2] temp0))) 100)
                    = temp1 (- temp1 Random(1 20))
                )
                (if (<= temp1 10)
                    = temp1 Random(1 20)
                )
                (send gOwner:
                    setSpeed(6)
                    setMotion(MoveTo + (send gOwner:x) temp1 80 self)
                )
            )
            (case 1
                (if (local1)
                    (self:setScript(climbDown self))
                )(else
                    (self:setScript(ScriptID(471 2) self))
                )
            )
            (case 2
                proc470_1()
                (self:dispose())
            )
        )
    )

)
(instance public climbDown of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gOwner:
                    view(0)
                    setCycle(Walk)
                    setMotion(MoveTo 288 80 self)
                )
            )
            (case 1
                (if (== local1 -1)
                    = local1 0
                )
                = local3 0
                (if (((== global362 0) and not proc0_6(59)) and local1)
                    proc0_4(59)
                    = local0 2
                    (if ((send gGQg3KDHandler:contains(ScriptID(34 1))))
                        = local3 1
                        (send gQg3Messager:say(2 6 10 0 self))
                    )(else
                        (self:setScript(uhuraEnter self))
                        proc0_4(59)
                    )
                    = local1 0
                )(else
                    = cycles 1
                )
            )
            (case 2
                (if (local3)
                    = local3 0
                    (send gQg3Messager:say(2 6 11 0 self))
                )(else
                    = ticks 1
                )
            )
            (case 3
                (send gOwner:
                    view(7)
                    setLoop(4)
                    setPri(10)
                    setCel((send gOwner:lastCel()))
                    setCycle(Beg self)
                )
            )
            (case 4
                (send gOwner:
                    y(+ (send gOwner:y) 57)
                    x(- (send gOwner:x) 5)
                    setLoop(1)
                    setCel((send gOwner:lastCel()))
                    setCycle(CT 0 -1 self)
                )
            )
            (case 5
                (send gOwner:
                    y(+ (send gOwner:y) 14)
                    cel((send gOwner:lastCel()))
                    setCycle(Beg self)
                )
            )
            (case 6
                (send gOwner:
                    view(7)
                    y(- (send gOwner:y) 3)
                    setLoop(0)
                    setCel((send gOwner:lastCel()))
                    setCycle(Beg self)
                )
            )
            (case 7
                (send gOwner:
                    view(0)
                    setScale(200)
                    normalize()
                )
                (if (== local0 2)
                    (send (ScriptID(34 1)):setScript(uhuraInstruct))
                )(else
                    proc0_3()
                )
                proc470_1()
                (self:dispose())
            )
        )
    )

)
(instance crossOverHand of Script
    (properties)

    (method (changeState newState)
        (var temp0, temp1)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gOwner:
                    setSpeed(6)
                    setMotion(PolyPath 83 140 self)
                )
            )
            (case 1
                (switch (global209)
                    (case 1
                        = temp1 150
                    )
                    (case 2
                        = temp1 180
                    )
                    (case 3
                        = temp1 210
                    )
                )
                (send gOwner:useSkill(0 100))
                (if (> (send gOwner:trySkill(0 temp1)) 0)
                    = temp0 148
                )(else
                    = temp0 (/ (* 148 (+ 100 (- gGOwnerMaxStamina[0] temp1))) 100)
                )
                (if (<= temp0 20)
                    = temp0 Random(10 30)
                )
                (send gOwner:
                    view(39)
                    setCycle(Fwd)
                    y(79)
                    setScale()
                    scaleX(111)
                    scaleY(111)
                    setMotion(MoveTo + (send gOwner:x) temp0 79 self)
                )
            )
            (case 2
                (send gOwner:
                    view(0)
                    y(141)
                    setScale(200)
                    normalize()
                )
                proc0_3()
                (self:dispose())
            )
        )
    )

)
(instance public climbRope of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                = local7 global209
                (rope:approachVerbs(0))
                (rope2:approachVerbs(0))
                (bridge:approachVerbs(0))
                (send gOwner:setMotion(MoveTo (rope:approachX) (rope:approachY) self))
            )
            (case 1
                (send gOwner:
                    view(7)
                    setLoop(0)
                    cel(0)
                    setStep(3 2)
                    setSpeed(6)
                    yStep(2)
                    xStep(3)
                    setPri(10)
                    ignoreActors(1)
                    setScale()
                    scaleX(109)
                    scaleY(109)
                    setCycle(End self)
                )
            )
            (case 2
                (send gLongSong2:
                    number(928)
                    setLoop(1)
                    play(127)
                )
                (send gOwner:
                    setLoop(1)
                    y(155)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 3
                (send gOwner:
                    cel(0)
                    y(- (send gOwner:y) 14)
                    setCycle(End self)
                )
            )
            (case 4
                (send gOwner:
                    cel(0)
                    y(- (send gOwner:y) 14)
                    setCycle(CT 5 1 self)
                )
            )
            (case 5
                (send gOwner:
                    y(- (send gOwner:y) 48)
                    setLoop(5)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 6
                (send gOwner:
                    setLoop(0)
                    view(12)
                    setCycle(Walk)
                    setMotion(MoveTo 90 80 self)
                )
            )
            (case 7
                (send gQg3Walkers:addToFront(global2))
                (if (== local0 5)
                    (send gOwner:setMotion(MoveTo 135 (send gOwner:y) self))
                )(else
                    (if (local6)
                        (send gOwner:setMotion(MoveTo 135 (send gOwner:y) self))
                    )(else
                        (if ((<> local0 1) and proc0_6(59))
                            (self:setScript(walkToCenter self))
                        )(else
                            = cycles 1
                        )
                    )
                )
            )
            (case 8
                (if ((send gGQg3KDHandler:contains(ScriptID(39 1))) or ((send gGQg3KDHandler:contains(ScriptID(34 1))) and (< (send (ScriptID(34 1)):y) 90)))
                    0
                )(else
                    proc0_3()
                )
                (if (== local0 5)
                    (send (ScriptID(39 1)):setScript(ScriptID(471 4)))
                )
                (self:dispose())
            )
        )
    )

)
(instance walkToCenter of Script
    (properties)

    (method (changeState newState)
        (var temp0, temp1)
        (asm
            lap     newState
            aTop    state
            push    
            dup     
            ldi     0
            eq?     
            bnt     code_13ea
            pushi   #setSpeed
            pushi   1
            pushi   6
            pushi   307
            pushi   4
            class   MoveTo
            push    
            pushi   100
            pushi   #y
            pushi   0
            lag     gOwner
            send    4
            push    
            pushSelf
            lag     gOwner
            send    18
            jmp     code_14e0
code_13ea:  dup     
            ldi     1
            eq?     
            bnt     code_14e0
            pushi   2
            pushi   0
            lag     global209
            sal     local7
            push    
            calle   proc471_6, 4
            pushi   140
            lsl     local7
            ldi     25
            mul     
            add     
            sat     temp0
            lsg     global362
            ldi     2
            eq?     
            bnt     code_1421
            pushi   0
            calle   proc471_8, 0
            pushi   #dispose
            pushi   0
            self    4
            jmp     code_14e0
code_1421:  lal     local6
            not     
            bnt     code_14be
            lsl     local0
            ldi     10
            ne?     
            bnt     code_14be
            ldi     2
            lsgi    gGOwnerMaxStamina
            lat     temp0
            ge?     
            bnt     code_14be
            pushi   1
            pushi   153
            callb   proc0_6, 2
            not     
            bnt     code_14be
            pushi   1
            pushi   100
            callb   proc0_6, 2
            bnt     code_1453
            lsg     global122
            lag     global425
            eq?     
code_1453:  not     
            bnt     code_14be
            pushi   #contains
            pushi   1
            pushi   2
            pushi   34
            pushi   1
            callk   ScriptID, 4
            push    
            lag     gGQg3KDHandler
            send    6
            not     
            bnt     code_14be
            pushi   1
            pushi   100
            callb   proc0_6, 2
            bnt     code_1479
            ldi     4
            sat     temp1
            jmp     code_147d
code_1479:  ldi     3
            sat     temp1
code_147d:  pushi   #notify
            pushi   2
            pushi   3
            lst     temp1
            lag     global2
            send    8
            pushi   #x
            pushi   1
            pushi   180
            pushi   0
            pushi   1
            pushi   250
            pushi   316
            pushi   1
            pushi   200
            pushi   214
            pushi   1
            pushi   2
            pushi   110
            pushi   0
            pushi   102
            pushi   0
            pushi   146
            pushi   1
            lofsa   uhuraEnterC
            push    
            pushi   2
            pushi   34
            pushi   1
            callk   ScriptID, 4
            send    38
            pushi   #dispose
            pushi   0
            self    4
            jmp     code_14e0
code_14be:  pushi   1
            pushi   152
            callb   proc0_6, 2
            bnt     code_14d7
            pushi   #dispose
            pushi   0
            self    4
            pushi   0
            calle   proc471_7, 0
            jmp     code_14e0
code_14d7:  pushi   0
            callb   proc0_3, 0
            pushi   #dispose
            pushi   0
            self    4
code_14e0:  toss    
            ret     
        )
    )

)
(instance initContest of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                = local0 5
                (send gOwner:
                    normalize()
                    setSpeed(6)
                    setScale(200)
                    setHeading(180)
                    x(30)
                    y(149)
                    init()
                )
                (send (ScriptID(39 1)):
                    setScale(200)
                    setHeading(180)
                    x(287)
                    y(144)
                    ignoreActors(1)
                    init()
                )
                (if (== (send gLongSong:number) 462)
                    (send gLongSong:
                        number(490)
                        setLoop(-1)
                        play()
                    )
                )(else
                    (send gLongSong:
                        setLoop(-1)
                        changeTo(490)
                    )
                )
                = cycles 1
            )
            (case 1
                (send gQg3Messager:say(8 6 47 0 self))
            )
            (case 2
                (send gOwner:
                    view(7)
                    setLoop(0)
                    cel(0)
                    setPri(10)
                    ignoreActors(1)
                    setScale()
                    scaleX(109)
                    scaleY(109)
                    setCycle(End self)
                )
                (send (ScriptID(39 1)):setHeading(0))
            )
            (case 3
                (send gOwner:
                    setLoop(1)
                    y(155)
                    cel(0)
                    setCycle(End self)
                )
                (send (ScriptID(39 1)):
                    view(472)
                    setLoop(3)
                    setPri(11)
                    setScale()
                    scaleX(109)
                    scaleY(109)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 4
            )
            (case 5
                (send gOwner:
                    cel(0)
                    y(- (send gOwner:y) 14)
                    setCycle(End self)
                )
                (send (ScriptID(39 1)):
                    setLoop(0)
                    cel(0)
                    x(281)
                    y(143)
                    setCycle(Fwd)
                    setStep(3 3)
                    setMotion(MoveTo 289 119 self)
                )
            )
            (case 6
                (send gOwner:
                    cel(0)
                    y(- (send gOwner:y) 14)
                    setCycle(CT 4 1 self)
                )
            )
            (case 7
            )
            (case 8
                (send gOwner:
                    y(- (send gOwner:y) 48)
                    x(- (send gOwner:x) 6)
                    setLoop(5)
                    cel(0)
                    setCycle(End self)
                )
                (send (ScriptID(39 1)):
                    setLoop(2)
                    cel(0)
                    x(293)
                    y(79)
                    setPri(10)
                    setStep(4 2)
                    setCycle(End self)
                )
            )
            (case 9
            )
            (case 10
                (send gOwner:
                    view(0)
                    setCycle(StopWalk 5)
                    setMotion(MoveTo 30 80 self)
                )
            )
            (case 11
                (send gOwner:
                    view(12)
                    setLoop(0)
                    setCycle(Walk)
                    setMotion(MoveTo 135 (send gOwner:y) self)
                )
                (send (ScriptID(39 1)):
                    setLoop(1)
                    cel(0)
                    x(285)
                    y(76)
                    setCycle(Walk)
                    setMotion(MoveTo 160 76 self)
                )
            )
            (case 12
            )
            (case 13
                (send gQg3Messager:say(8 6 48 0 self))
            )
            (case 14
                = local7 global209
                proc471_6(1 local7)
                (send client:setScript(ScriptID(471 4)))
            )
        )
    )

)
(instance rock of Feature
    (properties
        x 53
        y 175
        noun 7
        nsTop 167
        nsLeft 36
        nsBottom 183
        nsRight 71
        sightAngle 180
    )
)
(instance leftTreeTop of Feature
    (properties
        x 38
        y 26
        noun 9
        nsTop 17
        nsLeft 8
        nsBottom 35
        nsRight 68
        sightAngle 180
    )
)
(instance rightTreeTop of Feature
    (properties
        x 218
        y 25
        noun 10
        nsTop 16
        nsLeft 166
        nsBottom 35
        nsRight 271
        sightAngle 180
    )
)
(instance bridge of Feature
    (properties
        x 154
        y 76
        noun 4
        nsTop 68
        nsLeft 12
        nsBottom 82
        nsRight 311
        sightAngle 180
        approachX 83
        approachY 140
    )

    (method (doVerb theVerb param2)
        (if (<> theVerb 4)
            (super:doVerb(theVerb rest param2))
        )(else
            (if ((send global2:script))
                0
            )(else
                (if (<= (send gOwner:y) 90)
                    (send global2:doVerb(3))
                )(else
                    (if (== local0 1)
                        (send gQg3Messager:say(2 6 57))
                    )(else
                        (send global2:setScript(crossOverHand))
                    )
                )
            )
        )
    )

)
(instance rope of Feature
    (properties
        x 35
        y 104
        noun 5
        nsTop 68
        nsLeft 11
        nsBottom 158
        nsRight 52
        sightAngle 180
        approachX 30
        approachY 143
    )

    (method (doVerb theVerb param2)
        (if (<> theVerb 4)
            (super:doVerb(theVerb rest param2))
        )(else
            (if ((send global2:script) or (<= (send gOwner:y) 90))
                (bridge:doVerb(rest param2))
            )(else
                (if (not proc0_6(61))
                    proc0_4(61)
                    = local0 1
                    (send global2:setScript(uhuraEnter))
                )(else
                    (send global2:setScript(climbRope))
                )
            )
        )
    )

)
(instance rope2 of Feature
    (properties
        x 282
        y 97
        nsTop 82
        nsLeft 246
        nsBottom 166
        nsRight 301
        sightAngle 180
        approachX 30
        approachY 143
    )

    (method (doVerb theVerb param2)
        (rope:doVerb(theVerb rest param2))
    )

)
(instance wall of Feature
    (properties
        x 159
        y 65
        noun 6
        nsTop 39
        nsBottom 92
        nsRight 319
        sightAngle 40
        approachX 159
        approachY 65
    )
)
