(version 2)
(include "sci.sh")
(exports
    0 rm220
)
(use "Main")
(use "OccasionalCycle")
(use "FPRoom")
(use "Scaler")
(use "PolyPath")
(use "Polygon")
(use "CueObj")
(use "Door")
(use "n958")
(use "TimedCue")
(use "StopWalk")
(use "Cycle")
(use "View")
(use "Obj")
(script 220)


(local
    local0
    local1
    gEgoMoveSpeed
    local3 =     20
    local4 =     1
    local5 =     1

)
(instance public rm220 of FPRoom
    (properties
        noun 39
        picture 220
        horizon 40
        north 300
        east 230
        south 400
        west 210
    )

    (method (init)
        (if (proc0_2(59))
            (self:setRegions(90))
        )
        (if (== global119 22)
            (self:setRegions(91))
        )
        (send gEgo:
            init()
            setScale(Scaler 100 50 175 95)
            normalize()
        )
        (switch (gGNumber)
            (case west
                (if (< (send gEgo:y) 109)
                    (send gEgo:y(109))
                )
                = style 12
                (send gGame:handsOn())
            )
            (case east
                = style 11
                (send gGame:handsOn())
            )
            (case 235
                = style 11
                (send gGame:handsOn())
            )
            (case north
                = style 100
                (send gEgo:
                    x(285)
                    y(46)
                )
            )
            (case south
                = style 100
                (send gEgo:x(250))
                (send gGame:handsOn())
            )
            (case 550
                = style 10
                (send gEgo:
                    x(280)
                    y(160)
                )
                (self:setScript(sAfterLeverBros))
            )
            (case 680
                (send gGame:handsOn())
            )
            (case 690
                (send gEgo:edgeHit(0))
                = style 100
            )
            (default 
                = style 100
                (send gEgo:
                    x(160)
                    y(160)
                )
                (send gGame:handsOn())
            )
        )
        (if (((<> global119 22) and (< global119 23)) and not proc0_2(1))
            (if (> global120 1)
                (send gGameMusic1:
                    number(690)
                    flags(1)
                    loop(-1)
                    play()
                    setVol(80)
                )
            )(else
                (if ((<> global119 24) and (<> global119 14))
                    (send gGameMusic1:
                        number(221)
                        flags(1)
                        loop(-1)
                        play()
                    )
                )
            )
        )
        (super:init())
        (send global2:addObstacle((send ((Polygon:new())):
                type(2)
                init(0 141 10 142 37 167 207 167 211 189 0 189)
                yourself()
            )
))
        (if (< global119 6)
            (send global2:addObstacle((send ((Polygon:new())):
                    type(2)
                    init(0 0 319 0 319 119 312 119 305 94 295 94 290 67 303 67 286 3 267 3 277 29 272 48 232 48 214 100 198 100 198 84 160 84 161 88 194 88 194 111 78 111 66 98 50 106 0 109)
                    yourself()
                )
))
            (horse:
                init()
                approachVerbs(2)
                setCycle(OccasionalCycle 1 45 200 2 8)
            )
            (smithy:
                init()
                approachVerbs(4 2 1)
                setScale(-1 gEgo)
                setScript(sMakeHorseshoe)
            )
        )(else
            (send global2:addObstacle((send ((Polygon:new())):
                    type(2)
                    init(0 0 319 0 319 119 312 119 305 94 295 94 290 67 303 67 286 3 267 3 277 29 272 48 232 48 214 100 198 100 198 84 160 84 161 88 194 88 194 111 78 111 82 92 7 89 7 95 53 96 50 106 0 109)
                    yourself()
                )
))
            (if (((not (send gEgo:has(48)) and not (send gEgo:has(29))) and not proc0_2(22)) and (< global119 14))
                (rope:
                    init()
                    stopUpd()
                    approachVerbs(4)
                )
            )
            (if (not (send gEgo:has(30)) and not proc0_2(56))
                (strap:
                    init()
                    stopUpd()
                    approachVerbs(4)
                )
            )
        )
        (if (== global120 1)
            (coals:
                init()
                approachVerbs(4)
                setCycle(Fwd)
                setPri(7)
            )
        )
        (if ((not proc0_2(53) and (== global141 gNumber)) and (== global120 3))
            (horsePlop:
                init()
                approachVerbs(4)
            )
            = local0 (send ((Polygon:new())):
                    type(2)
                    init(131 126 131 135 97 135 97 126)
                    yourself()
                )
            (send global2:addObstacle(local0))
        )
        (if ((>= global119 8) and (<= global119 9))
            (horse1:
                init()
                cycleSpeed(10)
                setCycle(OccasionalCycle 1 30 120 1 4)
                setScript(sHorseStuff)
                approachVerbs(65)
            )
            (send global2:addObstacle((send ((Polygon:new())):
                    type(2)
                    init(82 114 188 114 188 125 171 125 171 144 136 144 136 125 82 125)
                    yourself()
                )
))
            proc958_0(132 2116)
        )(else
            (send global2:addObstacle((send ((Polygon:new())):
                    type(2)
                    init(82 114 188 114 188 125 82 125)
                    yourself()
                )
))
        )
        (bulletHole:init())
        (sidewalk:
            init()
            setOnMeCheck(1 8192)
        )
        (hay:
            init()
            setOnMeCheck(1 16384)
        )
        (anvilFtr:
            init()
            approachVerbs(4)
            setOnMeCheck(1 1024)
        )
        (bankDoor:init())
        (if ((<> global119 23) and (<> global119 24))
            (rugMan:
                init()
                hide()
                setPri(0)
                setScript(sRandomShaker)
            )
        )
        (wagon:
            init()
            approachVerbs(4 3)
            setOnMeCheck(1 4096)
        )
        (firepit:
            init()
            approachVerbs(4)
            setOnMeCheck(1 2048)
        )
        (smithyDoor:init())
        (blacksmith:
            init()
            approachVerbs(4)
            setOnMeCheck(1 4)
        )
        (fence:
            init()
            approachVerbs(4)
            setOnMeCheck(1 128)
        )
        (saddle:
            init()
            approachVerbs(4)
            setOnMeCheck(1 16)
        )
        (corral:
            init()
            approachVerbs(4)
            setOnMeCheck(1 8)
        )
        (balanceStreet:
            init()
            setOnMeCheck(1 512)
        )
        (bank:
            init()
            approachVerbs(4)
            setOnMeCheck(1 2)
        )
        (mainStreet:
            init()
            setOnMeCheck(1 256)
        )
        (trough:
            init()
            approachVerbs(4)
            setOnMeCheck(1 32)
        )
        (rail:
            init()
            approachVerbs(4)
            setOnMeCheck(1 64)
        )
        (if (== global119 23)
            (lever4:
                stopUpd()
                init()
            )
            (self:setScript(sBadBros))
        )
        (if (proc0_2(52))
            (dummyCredits:
                init()
                setScript(ScriptID(32 0))
            )
        )
    )


    (method (doit)
        (var temp0, temp1, temp2, temp3)
        (super:doit())
        (if (((== global120 1) and (== (% (send gGameMusic1:number) 1000) 221)) and not --local3)
            = temp0 GetDistance((send gEgo:x) (send gEgo:y) 46 94)
            (if (< temp0 0)
                = temp0 0
            )(else
                (if (> temp0 300)
                    = temp0 300
                )
            )
            = temp2 (- 80 (/ temp0 4))
            (send gGameMusic1:
                send(2 7 temp2)
                send(4 7 temp2)
                send(5 7 temp2)
                send(6 7 temp2)
                send(9 7 temp2)
                send(15 7 temp2)
            )
            = temp1 GetDistance((send gEgo:x) (send gEgo:y) 205 97)
            (if (< temp1 0)
                = temp1 0
            )(else
                (if (> temp1 300)
                    = temp1 300
                )
            )
            = temp3 (- 80 (/ temp1 4))
            (send gGameMusic1:
                send(7 7 temp3)
                send(10 7 temp3)
                send(14 7 temp3)
            )
            = local1 proc999_3(temp2 temp3)
            (send gGameMusic1:
                send(3 7 local1)
                send(11 7 local1)
                send(13 7 local1)
            )
            = local3 20
        )
    )


    (method (dispose)
        DisposeScript(32)
        (super:dispose())
    )


    (method (newRoom newRoomNumber)
        (if ((== newRoomNumber 230) and proc999_5(global119 8 9 20 22))
            = newRoomNumber 235
        )
        (if (((<> newRoomNumber 690) and (<> global119 24)) and (<> global119 14))
            (send gGameMusic1:fade(0 30 12 1))
        )
        (super:newRoom(newRoomNumber))
    )

)
(instance sHorseStuff of Script
    (properties)

    (method (doit)
        (super:doit())
        (if ((local4 and (== (horse1:loop) 3)) and (== (horse1:cel) 4))
            = local4 0
            (horseSound:
                number(2116)
                play(horse1)
            )
        )
    )


    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (switch (Random(0 3))
                    (case 0
                        (send client:setLoop(0))
                    )
                    (case 1
                        (send client:setLoop(1))
                    )
                    (case 2
                        (send client:setLoop(3))
                    )
                    (case 3
                        (send client:setLoop(2))
                    )
                )
                (send client:setCycle(Fwd))
                = cycles 1
            )
            (case 1
                (if ((== Random(5 10) 8) and (<> (send client:loop) 3))
                    (horseSound:
                        number(2114)
                        play(horse1)
                    )
                )
                = seconds Random(3 10)
            )
            (case 2
                (send client:setCycle(End self))
                (self:changeState(0))
            )
        )
    )

)
(instance sMakeHorseshoe of Script
    (properties)

    (method (doit)
        (super:doit())
        (if (not local5 and (<> (smithy:cel) 0))
            = local5 1
        )(else
            (if (local5 and (== (smithy:cel) 0))
                (smithieSound:
                    number(2225)
                    play()
                )
                = local5 0
            )
        )
    )


    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send client:
                    setLoop(0)
                    setCycle(Fwd)
                )
                = seconds Random(2 15)
            )
            (case 1
                (send client:setCycle(End self))
            )
            (case 2
                (send client:
                    setLoop(1)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 3
                = ticks 90
            )
            (case 4
                (send client:setCycle(Beg self))
            )
            (case 5
                (self:changeState(0))
            )
        )
    )

)
(instance sRandomShaker of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                = seconds Random(5 100)
            )
            (case 1
                (shakeSound:play())
                (send client:
                    show()
                    setLoop(1)
                    cel(0)
                    setCycle(TimedCue 5 self)
                )
            )
            (case 2
                (shakeSound:stop())
                (send client:
                    setLoop(0)
                    cel((send client:lastCel()))
                    setCycle(Beg self)
                )
            )
            (case 3
                (send client:
                    cel(0)
                    hide()
                )
                (self:changeState(0))
            )
        )
    )

)
(instance sBadBros of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gGame:handsOff())
                proc0_9(550)
                (send gGameMusic1:
                    number(144)
                    loop(-1)
                    play()
                )
                (send gGameMusic2:
                    number(234)
                    loop(1)
                    play()
                )
                = gEgoMoveSpeed (send gEgo:moveSpeed)
                (send gEgo:
                    setSpeed(7)
                    setMotion(PolyPath 248 174 self)
                )
            )
            (case 1
                = seconds 5
            )
            (case 2
                (lever4:setMotion(PolyPath 275 139 self))
            )
            (case 3
                (lever4:
                    setCycle(0)
                    view(223)
                    setLoop(0)
                    setCel(0)
                    stopUpd()
                )
                UnLoad(128 820)
                (lever1:
                    stopUpd()
                    init()
                )
                = seconds 8
            )
            (case 4
                (send gEgo:setHeading(180 self))
            )
            (case 5
                = cycles 2
            )
            (case 6
                (send gFpMessager:say(41 0 0 0 self))
            )
            (case 7
                (send gEgo:setHeading(0))
                (send gGameMusic2:stop())
                = seconds 3
            )
            (case 8
                (send gFpMessager:say(24 0 0 1 self))
            )
            (case 9
                = seconds 3
            )
            (case 10
                (send gFpMessager:say(24 0 0 2 self))
            )
            (case 11
                (send gEgo:
                    heading(355)
                    setHeading(270 self)
                )
            )
            (case 12
                = cycles 2
            )
            (case 13
                (lever1:setMotion(PolyPath 77 154 self))
            )
            (case 14
                (send gFpMessager:say(24 0 0 3 self))
            )
            (case 15
                (lever1:setMotion(PolyPath 195 175 self))
            )
            (case 16
                = cycles 2
            )
            (case 17
                (lever1:
                    setCycle(0)
                    view(223)
                    setLoop(1)
                    setCel(0)
                    stopUpd()
                )
                UnLoad(128 817)
                = cycles 3
            )
            (case 18
                (send gFpMessager:say(24 0 0 4 self))
            )
            (case 19
                (lever3:
                    stopUpd()
                    init()
                )
                = seconds 3
            )
            (case 20
                (send gFpMessager:say(24 0 0 5 self))
            )
            (case 21
                (send gEgo:setHeading(90 self))
            )
            (case 22
                = cycles 2
            )
            (case 23
                (lever3:setMotion(PolyPath 300 174 self))
            )
            (case 24
                = cycles 2
            )
            (case 25
                (lever3:
                    setCycle(0)
                    view(223)
                    setLoop(2)
                    setCel(0)
                    stopUpd()
                )
                UnLoad(128 819)
                = cycles 3
            )
            (case 26
                (send gFpMessager:say(24 0 0 6 self))
            )
            (case 27
                (lever2:
                    stopUpd()
                    init()
                )
                = seconds 3
            )
            (case 28
                (send gFpMessager:say(24 0 0 7 self))
            )
            (case 29
                (send gEgo:setHeading(180 self))
            )
            (case 30
                = cycles 2
            )
            (case 31
                (lever2:setMotion(PolyPath 220 182 self))
            )
            (case 32
                (lever2:
                    setLoop(3)
                    setCel(3)
                )
                = cycles 2
            )
            (case 33
                (lever2:
                    setCycle(0)
                    view(223)
                    setLoop(3)
                    setCel(0)
                    stopUpd()
                )
                UnLoad(128 818)
                = cycles 3
            )
            (case 34
                (send gFpMessager:say(24 0 0 8 12 self))
            )
            (case 35
                (send gEgo:setSpeed(gEgoMoveSpeed))
                (send global2:newRoom(550))
                (self:dispose())
            )
        )
    )

)
(instance sAfterLeverBros of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gGame:handsOff())
                = cycles 2
            )
            (case 1
                (send gFpMessager:say(30 0 0 1 5 self))
            )
            (case 2
                (send gGameMusic1:
                    number(724)
                    loop(1)
                    play()
                )
                = seconds 3
            )
            (case 3
                (send gFpMessager:say(30 0 0 6 self))
            )
            (case 4
                (send gEgo:setHeading(270 self))
            )
            (case 5
                = cycles 2
            )
            (case 6
                (kenny:
                    init()
                    setScale(-1 gEgo)
                    setCycle(StopWalk -1)
                    setStep(6 3)
                    setSpeed(10)
                    setMotion(MoveTo 60 160 self)
                )
            )
            (case 7
                (kenny:stopUpd())
                = cycles 3
            )
            (case 8
                (send gFpMessager:say(30 0 0 7 13 self))
            )
            (case 9
                (send global2:newRoom(560))
                (self:dispose())
            )
        )
    )

)
(instance sEndPuz of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gGame:handsOn())
                (send gTimers:delete(ScriptID(0 13) ScriptID(0 14)))
                = cycles 1
            )
            (case 1
                (send gOldCast:eachElementDo(#dispose))
                (send global2:
                    style(100)
                    drawPic(780)
                )
                (send gGame:points(20 152))
                (send gEgo:
                    put(21)
                    put(13)
                    put(20)
                )
                = cycles 1
            )
            (case 2
                (send gFpMessager:say(1 29 0 0 self 18))
            )
            (case 3
                = global119 10
                (send global2:newRoom(250))
                (send (ScriptID(0 13)):setReal(ScriptID(0 13) 0 15))
                (self:dispose())
            )
        )
    )

)
(instance horse1 of Prop
    (properties
        x 147
        y 127
        noun 1
        approachX 153
        approachY 151
        view 115
        loop 2
        priority 8
        signal $4010
        detailLevel 2
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 65
                (if (== global119 8)
                    (send gFpMessager:say(noun 0 4 0 0 18))
                )(else
                    (if ((== (self:loop) 3) and not (send gEgo:has(20)))
                        (send gEgo:put(41))
                        (send gEgo:get(-1 20))
                        (send gGame:points(6 151))
                        (send gFpMessager:say(noun 65 0 0 0 18))
                    )(else
                        (send gFpMessager:say(noun 65 2 0 0 18))
                    )
                )
            )
            (case 64
                (send gFpMessager:say(noun 64 0 0 0 18))
            )
            (case 1
                (if (== (self:loop) 3)
                    (send gFpMessager:say(noun 1 1 0 0 18))
                )(else
                    (send gFpMessager:say(noun 1 0 0 0 18))
                )
            )
            (case 4
                (send gFpMessager:say(noun 4 0 0 0 18))
            )
            (case 29
                (send global2:setScript(sEndPuz))
            )
            (default 
                (send gFpMessager:say(noun theVerb 0 0 0 18))
            )
        )
    )


    (method (cue)
        (super:cue())
        = local4 1
    )

)
(instance horsePlop of Prop
    (properties
        x 114
        y 129
        noun 40
        approachX 105
        approachY 135
        view 129
        loop 2
        signal $4000
        cycleSpeed 10
        detailLevel 2
    )

    (method (init)
        (super:init())
        (self:setCycle(Fwd))
    )


    (method (doVerb theVerb param2)
        (switch (theVerb)
            (case 4
                (send gEgo:get(23 horsePlop))
                proc0_3(53)
                (send gGame:points(1 128))
                (send ((send global2:obstacles)):delete(local0))
                (send local0:dispose())
                (self:dispose())
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance rugMan of Prop
    (properties
        x 225
        y 53
        z 30
        noun 38
        view 222
        detailLevel 2
    )
)
(instance smithy of Prop
    (properties
        x 43
        y 97
        noun 14
        approachX 52
        approachY 102
        view 221
        cycleSpeed 12
        detailLevel 2
    )

    (method (cue)
        (super:cue())
        = local5 1
    )

)
(instance coals of Prop
    (properties
        y 95
        noun 29
        approachX 1
        approachY 93
        view 220
        loop 2
        signal $4000
        detailLevel 2
    )

    (method (doVerb theVerb param2)
        (var temp0)
        = temp0 
            (if (== global120 1)
                1
            )(else
                2
            )
        (switch (theVerb)
            (case 1
                (send gFpMessager:say(noun theVerb temp0))
            )
            (case 4
                (send gFpMessager:say(noun theVerb temp0))
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance kenny of Actor
    (properties
        x -10
        y 160
        yStep 3
        view 810
        xStep 6
    )
)
(instance lever1 of Actor
    (properties
        x -10
        y 154
        view 817
        scaleSignal $0004
    )

    (method (init)
        (super:init())
        (self:
            setScale(Scaler 100 50 175 95)
            setCycle(StopWalk -1)
            setStep(6 3)
        )
    )

)
(instance lever2 of Actor
    (properties
        x 110
        y 220
        view 818
        scaleSignal $0004
    )

    (method (init)
        (super:init())
        (self:
            setScale(Scaler 100 50 175 95)
            setCycle(StopWalk -1)
            setStep(6 3)
        )
    )

)
(instance lever3 of Actor
    (properties
        x 330
        y 154
        view 819
        scaleSignal $0004
    )

    (method (init)
        (super:init())
        (self:
            setScale(Scaler 100 50 175 95)
            setCycle(StopWalk -1)
            setStep(6 3)
        )
    )

)
(instance lever4 of Actor
    (properties
        x 259
        y 68
        view 820
        scaleSignal $0004
    )

    (method (init)
        (super:init())
        (self:
            setScale(Scaler 100 50 175 95)
            setCycle(StopWalk -1)
            setStep(6 1)
        )
    )

)
(instance horse of Prop
    (properties
        x 45
        y 55
        noun 34
        approachX 44
        approachY 113
        view 220
        loop 6
        cycleSpeed 30
        detailLevel 2
    )
)
(instance dummyCredits of Prop
    (properties
        x -10
        y -10
        view 996
    )
)
(instance rope of View
    (properties
        x 4
        y 90
        z 41
        noun 27
        approachX 21
        approachY 93
        view 220
        loop 4
        priority 5
        signal $0010
    )

    (method (doVerb theVerb param2)
        (switch (theVerb)
            (case 4
                (send gEgo:get(48 self 3 self))
                (send gGame:points(1))
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance strap of View
    (properties
        x 19
        y 91
        z 40
        noun 33
        approachX 21
        approachY 93
        view 220
        loop 3
        priority 5
        signal $0010
    )

    (method (doVerb theVerb param2)
        (switch (theVerb)
            (case 4
                (send gEgo:get(30 self 3 self))
                (send gGame:points(1))
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance smithyDoor of View
    (properties
        x 30
        y 86
        noun 28
        view 220
        loop 1
    )

    (method (init)
        = cel 
            (if (< global119 6)
                0
            )(else
                1
            )
        (super:init())
    )


    (method (doVerb theVerb param2)
        (var temp0)
        = temp0 
            (if (== global120 1)
                1
            )(else
                2
            )
        (switch (theVerb)
            (case 1
                (send gFpMessager:say(noun theVerb temp0))
            )
            (case 4
                (send gFpMessager:say(noun theVerb temp0))
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance bulletHole of Feature
    (properties
        x 161
        y 80
        noun 25
        nsTop 77
        nsLeft 160
        nsBottom 83
        nsRight 163
        sightAngle 40
        approachX 161
        approachY 80
    )
)
(instance sidewalk of Feature
    (properties
        x 161
        y 80
        noun 32
        sightAngle 40
        approachX 161
        approachY 80
    )
)
(instance hay of Feature
    (properties
        x 161
        y 80
        noun 37
        sightAngle 40
        approachX 161
        approachY 80
    )
)
(instance wagon of Feature
    (properties
        x 256
        y 45
        noun 31
        approachX 254
        approachY 53
    )
)
(instance anvilFtr of Feature
    (properties
        x 7
        y 95
        noun 36
    )
)
(instance firepit of Feature
    (properties
        x 7
        y 95
        noun 29
        approachX 6
        approachY 93
    )

    (method (doVerb theVerb param2)
        (var temp0)
        = temp0 
            (if (== global120 1)
                1
            )(else
                2
            )
        (switch (theVerb)
            (case 1
                (send gFpMessager:say(noun theVerb temp0))
            )
            (case 4
                (if ((send gEgo:has(5)) or proc0_2(17))
                    (send gFpMessager:say(noun theVerb 3))
                )(else
                    (send gFpMessager:say(noun theVerb temp0))
                    (if (== temp0 2)
                        (send gEgo:get(-1 5))
                        (send gGame:points(1))
                    )
                )
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance blacksmith of Feature
    (properties
        x 50
        y 46
        noun 26
        sightAngle 40
        approachX 53
        approachY 102
        approachDist 63
    )

    (method (doVerb theVerb param2)
        (var temp0)
        = temp0 
            (if (< global119 6)
                1
            )(else
                2
            )
        (switch (theVerb)
            (case 1
                (send gFpMessager:say(noun theVerb temp0))
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance fence of Feature
    (properties
        x 97
        y 161
        noun 21
        sightAngle 40
        approachX 72
        approachY 151
        approachDist 34
    )
)
(instance saddle of Feature
    (properties
        x 97
        y 161
        noun 18
        sightAngle 40
        approachX 72
        approachY 151
        approachDist 34
    )
)
(instance corral of Feature
    (properties
        x 97
        y 161
        noun 17
        sightAngle 40
        approachX 72
        approachY 151
        approachDist 34
    )
)
(instance balanceStreet of Feature
    (properties
        x 269
        y 74
        noun 22
        sightAngle 40
    )
)
(instance bank of Feature
    (properties
        x 153
        y 52
        noun 16
        sightAngle 40
        approachX 177
        approachY 112
        approachDist 69
    )
)
(instance mainStreet of Feature
    (properties
        x 97
        y 61
        noun 23
        sightAngle 40
    )
)
(instance trough of Feature
    (properties
        x 100
        y 125
        noun 19
        sightAngle 40
        approachX 129
        approachY 135
        approachDist 36
    )
)
(instance rail of Feature
    (properties
        x 143
        y 117
        noun 20
        sightAngle 40
        approachX 167
        approachY 120
        approachDist 32
    )
)
(instance bankDoor of Door
    (properties
        x 190
        y 93
        noun 16
        approachX 204
        approachY 100
        view 220
        cel 2
        entranceTo 690
        openSnd 2146
        closeSnd 2147
        openVerb 4
        moveToX 171
        moveToY 84
        enterType 0
        exitType 0
    )

    (method (init)
        (super:init())
        = locked 
            (if ((< global119 20) and not proc0_2(1))
                0
            )(else
                1
            )
        = lockedCase 
            (if (proc0_2(1))
                4
            )(else
                5
            )
    )

)
(instance horseSound of FPSound
    (properties
        flags $0001
    )
)
(instance smithieSound of FPSound
    (properties
        flags $0001
    )
)
(instance shakeSound of FPSound
    (properties
        flags $0001
        number 2222
        loop -1
    )
)
