(version 2)
(include "sci.sh")
(exports
    0 rm740
)
(use "Main")
(use "TellerIcon")
(use "n026")
(use "JumpX")
(use "Scaler")
(use "MCyc")
(use "PolyPath")
(use "Polygon")
(use "CueObj")
(use "n958")
(use "Sound")
(use "Jump")
(use "Cycle")
(use "Game")
(use "View")
(use "Obj")
(script 740)


(local
    local0[21] = (4 0 151 41 4 1 150 41 4 2 150 56 4 3 150 66 4 4 150 79 -32768 )
    newJumpScript[10]
    newMonkey[10]
    local41
    local42
    local43
    local44
    local45
    local46
    local47
    local48
    local49
    local50[9] = (0 1 -4 -10 -7 -6 -2 8 999 )
    local59[2]
    local61[5] = (0 15 2 16 999 )
    local66[2]

)
(instance public rm740 of Rm
    (properties
        noun 13
        picture 740
    )

    (method (init)
        proc0_2()
        (send gMainIconBar:disable())
        = local59[0] @local50
        = local66[0] @local61
        (send gQg3Walkers:addToFront(target))
        (send global2:addObstacle((send ((Polygon:new())):
                type(2)
                init(0 67 50 71 101 93 139 91 167 72 146 72 138 82 116 81 103 66 112 54 132 48 132 42 108 42 106 51 86 65 69 61 0 60 0 0 319 0 319 62 296 70 239 67 248 94 319 91 319 189 0 189)
                yourself()
            )
))
        (super:init())
        (target:init())
        (send gLongSong2:
            number(742)
            setLoop(-1)
            play(127)
        )
        (waterFall:init())
        (rightVines:init())
        (lowPath:init())
        (upperPath:init())
        (mist:
            setCycle(Fwd)
            init()
        )
        (vine:
            init()
            stopUpd()
        )
        (vine2:
            init()
            stopUpd()
        )
        (egoTell:init(gOwner @local50 @local59))
        (manuTell:init(ScriptID(41 1) @local61 @local66))
        (send gOwner:
            x(-15)
            y(60)
            noun(1)
            init()
            setScale(Scaler 100 60 189 60)
            normalize()
        )
        (send (ScriptID(41 1)):
            ignoreActors(1)
            x(-15)
            y(50)
            noun(3)
            setScale(0)
            init()
            stopUpd()
        )
        (jungle:init())
        (send global2:setScript(enterRoom))
        (send gGame:save(1))
    )


    (method (doit)
        proc0_15(227 234 -1)
        (if (GameIsRestarting() and (== local47 1))
            Graph(grDRAW_LINE 36 124 36 283 0 -1 -1)
            Graph(grUPDATE_BOX 35 123 37 284 1)
        )
        (if (not (== (send gLongSong2:number) 742) and (== (send gLongSong2:prevSignal) -1))
            (send gLongSong2:
                number(742)
                setLoop(-1)
                play()
            )
        )
        (if (script)
        )(else
            (if (<= (send gOwner:x) 10)
                (send global2:setScript(manuWarn))
            )(else
                (if (>= (send gOwner:x) 310)
                    (send global2:setScript(exitRoom))
                )
            )
        )
        (super:doit())
    )


    (method (dispose)
        (mist:setCycle(0))
        proc958_0(0 964 41 942 57)
        (send gQg3Walkers:delete(target))
        (send gQg3Walkers:delete(bridge))
        (send gLongSong:stop())
        (send gLongSong2:stop())
        (super:dispose())
    )


    (method (doVerb theVerb)
        (switch (theVerb)
            (case 84
                (if (== (send (ScriptID(41 1)):script) manuPulls)
                    (manuPulls:cue())
                )(else
                    (if ((local43 and local45) and local46)
                        (send global2:setScript(leviWVine))
                    )(else
                        (if (== global125 1)
                            (send global2:setScript(leviNotMonks))
                        )(else
                            (super:doVerb(theVerb))
                        )
                    )
                )
            )
            (case 81
                (send gQg3Messager:say(2 6 35))
            )
            (case 83
                (send gQg3Messager:say(2 6 35))
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )


    (method (notify param1)
        (if ((== param1 -15) and local47)
            Graph(grDRAW_LINE 36 124 36 283 0 -1 -1)
            Graph(grUPDATE_BOX 35 123 37 284 1)
        )
    )

)
(instance thiefCrossBridge of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                = cycles 5
            )
            (case 1
                (send gOwner:setMotion(PolyPath 132 46 self))
            )
            (case 2
                (send gOwner:
                    view(12)
                    setCycle(Fwd)
                    setLoop(0)
                    cycleSpeed(6)
                    moveSpeed(6)
                    setMotion(MoveTo 132 36 self)
                )
            )
            (case 3
                (send gOwner:setMotion(MoveTo 264 36 self))
            )
            (case 4
                (send gOwner:
                    view(0)
                    setLoop(-1)
                    normalize()
                )
                (bridge:dispose())
                (self:setScript(exitRoom))
            )
        )
    )

)
(instance manuPulls of Script
    (properties)

    (method (doit)
        (super:doit())
        (if ((== state 6) or (== state 7))
            (egoVine:x((send gOwner:x)))
        )
    )


    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gOwner:normalize())
                (if ((send gOwner:has(26)))
                    (self:cue())
                )(else
                    (send gQg3Messager:say(1 34 4 0 self))
                )
            )
            (case 1
                (send gOwner:
                    setMotion(PolyPath 164 77)
                    ignoreActors(1)
                )
                (send (ScriptID(41 1)):setMotion(PolyPath 150 78 self))
            )
            (case 2
                (send (ScriptID(41 1)):setMotion(JumpTo 256 82 self))
                (send gQg3Messager:say(2 6 26))
            )
            (case 3
                (egoVine:
                    ignoreActors(1)
                    setLoop(1)
                    setPri(1)
                    init()
                )
                (send (ScriptID(41 1)):
                    view(741)
                    loop(4)
                    setCycle(End self)
                )
                = local49 1
                (send gQg3Messager:say(2 6 28))
                (send gOwner:drop(24 -1))
            )
            (case 4
                proc0_13()
            )
            (case 5
                proc0_2()
                (send gOwner:
                    view(17)
                    setLoop(0)
                    setCycle(End self)
                    setMotion(MoveTo 164 (send gOwner:y))
                )
            )
            (case 6
                (send (ScriptID(41 1)):setCycle(Fwd))
                (send gOwner:
                    xStep(3)
                    moveSpeed(3)
                    setMotion(MoveTo 240 (send gOwner:y) self)
                )
            )
            (case 7
                (send (ScriptID(41 1)):
                    view(985)
                    setCycle(0)
                    setLoop(-1)
                    loop(1)
                )
                (send gQg3Walkers:delete(target))
                (target:dispose())
                (egoVine:dispose())
                (send gOwner:
                    setCycle(Beg)
                    setMotion(MoveTo 240 77 self)
                )
            )
            (case 8
                (send gLongSong2:
                    number(742)
                    setLoop(-1)
                    play(60)
                )
                (send gOwner:
                    view(0)
                    normalize()
                )
                (self:setScript(exitRoom))
                (self:dispose())
            )
        )
    )

)
(instance leviVine of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                = local46 1
                (send gOwner:drop(24))
                (send gOwner:setMotion(PolyPath 164 77))
                (send (ScriptID(41 1)):setMotion(PolyPath 169 77 self))
            )
            (case 1
                (send (ScriptID(41 1)):setMotion(JumpTo 259 78 self))
            )
            (case 2
                (send gQg3Messager:say(2 6 26))
                (egoVine:
                    ignoreActors(1)
                    setLoop(1)
                    setPri(1)
                    init()
                )
                (send (ScriptID(41 1)):
                    view(741)
                    loop(4)
                    setScale()
                    cel(0)
                )
                (send gOwner:drop(24 -1))
                = cycles 1
            )
            (case 3
                (send gLongSong2:
                    number(742)
                    setLoop(-1)
                    play(60)
                )
                proc0_3()
                (self:dispose())
            )
        )
    )

)
(instance leviWVine of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gMainIconBar:disable())
                (send gOwner:
                    view(17)
                    setLoop(0)
                    setCycle(End self)
                    setMotion(MoveTo 164 70)
                )
                (egoVine:setMotion(MoveTo 164 70))
            )
            (case 1
                (send (ScriptID(41 1)):
                    setLoop(4)
                    setCycle(Fwd)
                )
                (send gOwner:
                    xStep(3)
                    moveSpeed(3)
                    setMotion(MoveTo 240 70 self)
                )
                (egoVine:
                    xStep(3)
                    moveSpeed(3)
                    setMotion(MoveTo 240 70)
                )
            )
            (case 2
                (send (ScriptID(41 1)):
                    view(985)
                    setCycle(0)
                    setLoop(-1)
                    loop(1)
                )
                (egoVine:dispose())
                (send gOwner:
                    setCycle(Beg self)
                    setMotion(MoveTo 240 77)
                )
            )
            (case 3
                (send gLongSong2:
                    number(742)
                    setLoop(-1)
                    play(60)
                )
                (send gOwner:
                    view(0)
                    normalize()
                )
                (send gOwner:drop(24 2))
                proc0_3()
                (self:dispose())
            )
        )
    )

)
(instance leviNotMonks of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send (ScriptID(31 0)):init())
                = seconds 5
            )
            (case 1
                (send gQg3Messager:say(2 6 25 0 self))
            )
            (case 2
                (send gLongSong2:
                    number(742)
                    setLoop(-1)
                    play(60)
                )
                (send gMainIconBar:enable())
                (self:dispose())
            )
        )
    )

)
(instance setBridge of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send (ScriptID(41 1)):setMotion(PolyPath 150 78 self))
            )
            (case 1
                (send (ScriptID(41 1)):
                    view(741)
                    loop(0)
                    cel(0)
                    setCycle(End)
                    setMotion(JumpTo 256 82 self)
                )
            )
            (case 2
                = seconds 2
            )
            (case 3
                (send (ScriptID(41 1)):
                    view(985)
                    setCycle(Walk)
                    setMotion(MoveTo 247 62 self)
                )
            )
            (case 4
                (send (ScriptID(41 1)):
                    view(741)
                    loop(3)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 5
                (send (ScriptID(41 1)):
                    loop(2)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 6
                (send (ScriptID(41 1)):
                    loop(5)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 7
                (send (ScriptID(41 1)):setCycle(Beg self))
            )
            (case 8
                Graph(grDRAW_LINE 36 124 36 283 0 -1 -1)
                Graph(grUPDATE_BOX 35 123 37 284 1)
                (send gOwner:drop(41))
                (send gMainIconBar:advanceCurIcon())
                (bridge:
                    approachVerbs(4)
                    init()
                )
                (send gQg3Walkers:add(bridge))
                = cycles 1
            )
            (case 9
                (send gQg3Messager:say(2 6 2 0 self))
            )
            (case 10
                (send (ScriptID(41 1)):setPri(1))
                = local47 1
                (self:dispose())
            )
        )
    )

)
(instance setVine of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send (ScriptID(41 1)):setMotion(PolyPath 150 78 self))
            )
            (case 1
                (send (ScriptID(41 1)):
                    view(741)
                    loop(0)
                    cel(0)
                    setCycle(End)
                    setMotion(JumpTo 256 82 self)
                )
            )
            (case 2
                = seconds 2
            )
            (case 3
                (send (ScriptID(41 1)):
                    view(985)
                    setCycle(Walk)
                    setMotion(MoveTo 271 52 self)
                )
            )
            (case 4
                (send (ScriptID(41 1)):
                    view(741)
                    loop(3)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 5
                (send (ScriptID(41 1)):
                    loop(2)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 6
                (send (ScriptID(41 1)):
                    loop(5)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 7
                (send (ScriptID(41 1)):setCycle(Beg self))
            )
            (case 8
                Graph(grDRAW_LINE 36 124 36 283 0 -1 -1)
                Graph(grUPDATE_BOX 35 123 37 284 1)
                (send gOwner:drop(24 2))
                (bridge:
                    approachVerbs(4)
                    init()
                )
                (send gOwner:solvePuzzle(324 3 9))
                (send gQg3Walkers:add(bridge))
                = cycles 1
            )
            (case 9
                (send (ScriptID(41 1)):
                    view(985)
                    loop(0)
                    setPri(1)
                    setCycle(Walk)
                )
                = local47 1
                (self:dispose())
            )
        )
    )

)
(instance jumpScript of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send client:setMotion(PolyPath 150 78 self))
            )
            (case 1
                (send client:
                    view(741)
                    loop(0)
                    cel(0)
                    setCycle(End)
                    setMotion(JumpX 256 Random(15 25) self)
                )
            )
            (case 2
                (send client:
                    view(985)
                    setCycle(Walk)
                    setMotion(MoveTo 350 66 self)
                )
            )
            (case 3
                (send client:dispose())
            )
        )
    )

)
(instance enterRoom of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                = local41 0
                (while (< local41 9)
                    = newJumpScript[local41] (jumpScript:new())
                    (send (= newMonkey[local41] (monkey:new())):
                        x(- (monkey:x) (* 25 local41))
                        setLoop(0)
                        setCycle(Walk)
                        cycleSpeed(3)
                        moveSpeed(3)
                        xStep(5)
                        init()
                        setScript(newJumpScript[local41])
                    )
                    ++local41
                )
                = seconds 7
            )
            (case 1
                (send gOwner:
                    setStep(3 2)
                    setMotion(PolyPath 38 66 self)
                )
                (send (ScriptID(41 1)):
                    setCycle(Walk)
                    setMotion(PolyPath 42 60)
                )
            )
            (case 2
                (send gQg3Messager:say(3 6 12 0 self))
            )
            (case 3
                (send gMainIconBar:enable())
                proc0_3()
                (self:dispose())
            )
        )
    )

)
(instance manuWarn of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gOwner:setMotion(PolyPath (+ (send gOwner:x) 10) (send gOwner:y) self))
            )
            (case 1
                (send gQg3Messager:say(3 6 13))
                proc0_3()
                (self:dispose())
            )
        )
    )

)
(instance throwGrap of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gOwner:setMotion(PolyPath 163 75 self))
            )
            (case 1
                (send gOwner:
                    view(8)
                    loop(0)
                    cel(0)
                    setCycle(CT 6 1 self)
                )
            )
            (case 2
                (send gOwner:setCycle(End))
                (rope:
                    init()
                    setCycle(End self)
                )
                (sFx:
                    number(721)
                    play()
                )
            )
            (case 3
                (send gOwner:
                    view(4)
                    setCycle(End self)
                )
                (send gOwner:drop(6))
            )
            (case 4
                (send gOwner:
                    view(0)
                    setCycle(Walk)
                )
                = local47 1
                proc0_3()
                (self:dispose())
            )
        )
    )

)
(instance exitRoom of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (if ((send gOwner:has(24)))
                    (send gOwner:drop(24))
                )
                (send gOwner:
                    solvePuzzle(325 10)
                    setMotion(PolyPath 330 (send gOwner:y) self)
                )
            )
            (case 1
                = seconds 1
            )
            (case 2
                (send global2:newRoom(180))
            )
        )
    )

)
(instance attemptBridge of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                = cycles 5
            )
            (case 1
                (send gOwner:setMotion(PolyPath 132 46 self))
            )
            (case 2
                (send gOwner:
                    view(12)
                    setCycle(Fwd)
                    setLoop(0)
                    cycleSpeed(6)
                    moveSpeed(6)
                    setMotion(MoveTo 132 36 self)
                )
            )
            (case 3
                (send gOwner:
                    view(6)
                    setLoop(4)
                    setCycle(MCyc @local0 self)
                )
            )
            (case 4
                (send gOwner:setCycle(End self))
            )
            (case 5
                (switch (local42)
                    (case 0
                        (send gQg3Messager:say(2 6 20))
                    )
                    (case 1
                        (send gQg3Messager:say(2 6 21))
                    )
                )
                ++local42
                = cycles 1
            )
            (case 6
                (send gOwner:
                    setLoop(10)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 7
                (send gOwner:
                    cycleSpeed(3)
                    moveSpeed(3)
                    setLoop(-1)
                    changeGait(0)
                    normalize()
                )
                proc0_3()
                (self:dispose())
            )
        )
    )

)
(instance egoDeathFall of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                = cycles 5
            )
            (case 1
                (send gOwner:setMotion(PolyPath 120 36 self))
            )
            (case 2
                (send gOwner:
                    view(12)
                    setCycle(Fwd)
                    setLoop(0)
                    cycleSpeed(6)
                    moveSpeed(6)
                    setMotion(MoveTo 209 36 self)
                )
            )
            (case 3
                (self:setScript(egoFalls))
            )
        )
    )

)
(instance egoFalls of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gOwner:
                    view(6)
                    setLoop(4)
                    setCel(0)
                    setCycle(End self)
                )
            )
            (case 1
                = seconds 2
            )
            (case 2
                (sFx:
                    number(912)
                    play()
                )
                (send gOwner:
                    moveSpeed(0)
                    setStep(4 4)
                    setScale(Scaler 25 75 189 60)
                    setCycle(0)
                    setMotion(MoveTo 209 200 self)
                )
            )
            (case 3
                proc26_0(22 0 744 Fwd)
                (self:dispose())
            )
        )
    )

)
(instance thiefCrossRope of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gOwner:setMotion(PolyPath 169 79 self))
            )
            (case 1
                (send gOwner:
                    view(11)
                    y(79)
                    setLoop(2)
                    setCycle(Fwd)
                    setMotion(MoveTo 264 79 self)
                )
            )
            (case 2
                (send gOwner:
                    view(0)
                    setLoop(-1)
                    normalize()
                )
                (send gQg3Messager:say(2 6 38 0 self))
            )
            (case 3
                (send gQg3Walkers:delete(target))
                (bridge:dispose())
                (send gOwner:get(6))
                (self:setScript(exitRoom))
            )
        )
    )

)
(instance getVine of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gOwner:setMotion(PolyPath 44 70 self))
            )
            (case 1
                (send gOwner:
                    view(31)
                    cel(0)
                    setCycle(CT 3 1 self)
                )
            )
            (case 2
                (if (== (send ((send gInv:at(24))):state) 0)
                    (send gOwner:get(24))
                    (send ((send gInv:at(24))):state(1))
                    (send gQg3Messager:say(2 6 23))
                    (vine:dispose())
                )(else
                    (send gOwner:get(24))
                    (send gQg3Messager:say(2 6 24))
                    (send ((send gInv:at(24))):state(2))
                    (vine2:dispose())
                )
                = cycles 1
            )
            (case 3
                (if (== (send ((send gInv:at(24))):state) 2)
                    (send gQg3Messager:say(2 6 9 0 self))
                )(else
                    (self:cue())
                )
            )
            (case 4
                (send gOwner:setCycle(End self))
            )
            (case 5
                (send gOwner:
                    view(0)
                    normalize()
                )
                proc0_3()
                (self:dispose())
            )
        )
    )

)
(instance crossBridge of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gOwner:setMotion(PolyPath 166 71 self))
            )
            (case 1
                (send gOwner:
                    view(39)
                    y(35)
                    setCycle(Fwd)
                    setMotion(MoveTo 265 35 self)
                )
            )
            (case 2
                (send gOwner:
                    view(0)
                    normalize()
                    y(75)
                )
                = seconds 2
            )
            (case 3
                (send gQg3Messager:say(3 6 14))
                (send gQg3Walkers:delete(target))
                (bridge:dispose())
                (self:setScript(exitRoom))
            )
        )
    )

)
(instance attemptVine of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gOwner:setMotion(PolyPath 166 71 self))
            )
            (case 1
                (send gOwner:
                    view(39)
                    loop(0)
                    cel(0)
                    y(35)
                )
                = ticks 120
            )
            (case 2
                (send gOwner:
                    view(0)
                    y(71)
                )
                (send gQg3Messager:say(2 6 33))
                = cycles 1
            )
            (case 3
                (self:dispose())
            )
        )
    )

)
(instance jumpToDoom of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc0_2()
                (send gOwner:
                    moveSpeed(2)
                    setMotion(PolyPath 166 78 self)
                )
            )
            (case 1
                (send gOwner:setMotion(JumpTo 185 66 self))
            )
            (case 2
                (sFx:
                    number(912)
                    play()
                )
                (send gOwner:
                    view(6)
                    setLoop(4)
                    moveSpeed(0)
                    setCycle(0)
                    setScale(Scaler 0 75 189 60)
                    setMotion(MoveTo 185 162 self)
                )
            )
            (case 3
                proc26_0(17 0 744 Fwd)
                (self:dispose())
            )
        )
    )

)
(instance monkey of Actor
    (properties
        x -10
        y 60
        view 985
        signal $4000
    )
)
(instance rope of Prop
    (properties
        x 170
        y 79
        view 51
        signal $4000
    )

    (method (init)
        (super:init())
        (send gQg3Walkers:addToFront(self))
    )


    (method (dispose)
        (send gQg3Walkers:delete(self))
        (super:dispose())
    )


    (method (doVerb theVerb)
        (switch (theVerb)
            (case 4
                (if (< (send gOwner:x) 250)
                    (send global2:setScript(thiefCrossRope))
                )(else
                    (send gOwner:get(6))
                    (self:dispose())
                )
            )
            (case 3
                (if (< (send gOwner:x) 250)
                    (send global2:setScript(thiefCrossRope))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance mist of Prop
    (properties
        x 202
        y 172
        view 740
        loop 1
        signal $4000
        detailLevel 3
    )
)
(instance vine of View
    (properties
        noun 7
        view 740
        signal $4010
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 4
                (send gOwner:setScript(getVine 0 vine))
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance vine2 of View
    (properties
        x 29
        noun 7
        view 740
        cel 1
        signal $4010
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 4
                (send gOwner:setScript(getVine 0 vine2))
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance egoVine of Actor
    (properties
        x 161
        y 74
        view 51
        signal $4000
    )
)
(instance target of Feature
    (properties
        x 252
        y 76
        noun 10
        nsLeft 233
        nsBottom 200
        nsRight 320
        sightAngle 40
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 16
                (if (not local47)
                    (send global2:setScript(throwGrap))
                )
            )
            (case 52
                (send gQg3Messager:say(2 6 19))
            )
            (case 3
                (if (== global100 1)
                    (send gOwner:setScript(jumpToDoom))
                )(else
                    (send gQg3Messager:say(2 6 18))
                    (send gOwner:setMotion(0))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance bridge of Feature
    (properties
        x 200
        y 38
        nsTop 31
        nsLeft 133
        nsBottom 43
        nsRight 285
        sightAngle 40
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 4
                (if ((send global2:script))
                    0
                )(else
                    (if ((== global125 2) or (== global125 1))
                        (if (> (send gOwner:trySkill(0 250)) 0)
                            (send global2:setScript(crossBridge))
                        )(else
                            (send global2:setScript(attemptVine))
                        )
                    )(else
                        (send global2:setScript(crossBridge))
                    )
                )
            )
            (case 3
                (if ((send global2:script))
                    0
                )(else
                    (if (== global125 2)
                        (send global2:setScript(thiefCrossBridge))
                    )(else
                        (if (< local42 2)
                            (send global2:setScript(attemptBridge))
                        )(else
                            (send global2:setScript(egoDeathFall))
                        )
                    )
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance waterFall of Feature
    (properties
        x 180
        y 1
        noun 5
        sightAngle 40
        onMeCheck $4000
    )
)
(instance jungle of Feature
    (properties
        x 28
        y 168
        noun 6
        nsTop 148
        nsBottom 189
        nsRight 56
        sightAngle 40
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance rightVines of Feature
    (properties
        x 221
        y 26
        noun 9
        nsTop -1
        nsLeft 196
        nsBottom 54
        nsRight 247
        sightAngle 180
    )
)
(instance lowPath of Feature
    (properties
        x 138
        y 80
        noun 11
        nsTop 68
        nsLeft 106
        nsBottom 93
        nsRight 171
        sightAngle 180
    )
)
(instance upperPath of Feature
    (properties
        x 122
        y 48
        noun 12
        nsTop 35
        nsLeft 100
        nsBottom 62
        nsRight 144
        sightAngle 180
    )
)
(instance sFx of Sound
    (properties)
)
(instance manuTell of Teller
    (properties)

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 2
                (super:doVerb(theVerb))
            )
            (default 
                (send global2:doVerb(theVerb))
            )
        )
    )

)
(instance egoTell of Teller
    (properties)

    (method (showDialog)
        (super:showDialog(-4 
            (if (== global125 1)
                (< (send gOwner:x) 240)
            )(else
                0
            )
 -10 (== local48 1) -6 
            (if ((((< (send gOwner:x) 240) and (send gOwner:has(24))) and (> (send ((send gInv:at(24))):state) 0)) and not local47)
                not (== global125 2)
            )(else
                0
            )
 -2 
            (if ((((send gOwner:has(41)) or (send gOwner:has(26))) and not local47) and not local46)
                not (== global125 2)
            )(else
                0
            )
 -7 (== local49 1)))
    )


    (method (doChild)
        (switch (query)
            (case -2
                (if (== global125 1)
                    = local47 1
                    (send (ScriptID(41 1)):setScript(manuPulls))
                )(else
                    (if (not local47 and not local46)
                        (send global2:setScript(setBridge))
                    )
                )
            )
            (case -4
                = local48 1
            )
            (case -10
                = local43 1
            )
            (case -6
                (if (== global125 1)
                    = local47 1
                    (send (ScriptID(41 1)):setScript(manuPulls))
                )(else
                    (if (not local47)
                        = local47 1
                        (send global2:setScript(setVine))
                        = query -5
                    )
                )
            )
            (case -7
                = local49 0
                (send gMainIconBar:enable(6))
                (send (ScriptID(41 1)):setCycle(Beg))
            )
        )
        return 1
    )


    (method (doVerb theVerb)
        (var temp0)
        (switch (theVerb)
            (case 2
                (super:doVerb(theVerb))
            )
            (case 34
                (if (== global125 1)
                    (send gQg3Messager:say(2 6 37))
                    = local46 1
                )(else
                    (super:doVerb(theVerb))
                )
            )
            (default 
                (send gOwner:doVerb(theVerb))
            )
        )
    )

)
