(version 2)
(include "sci.sh")
(exports
    0 rm235
)
(use "Main")
(use "Swing")
(use "OccasionalCycle")
(use "FPRoom")
(use "PAvoider")
(use "Scaler")
(use "ROsc")
(use "PolyPath")
(use "Polygon")
(use "CueObj")
(use "MoveFwd")
(use "Door")
(use "n958")
(use "Cycle")
(use "View")
(use "Obj")
(script 235)


(local
    local0
    local1 =     1
    local2 =     1
    local3 =     1
    local4 =     1
    local5 =     1
    local6 =     1
    local7 =     1
    local8 =     1
    local9 =     1
    local10
    local11

)
(instance public rm235 of FPRoom
    (properties
        noun 15
        picture 230
        style $000a
        east 240
        west 220
    )

    (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
                = style 12
                (send gGame:handsOn())
                (if (== global119 22)
                    (cowboy1:setScript(sRowdysKill))
                )
            )
            (case east
                = style 11
                (send gGame:handsOn())
            )
            (case 400
                (send gEgo:hide())
                = style 9
                (cannister:
                    setLoop(3)
                    setCycle(Fwd)
                )
            )
            (case 500
                (send gEgo:
                    posn(200 47)
                    setScale(Scaler 58 49 55 47)
                )
                (send global2:setScript(sEnterFrom500))
            )
            (case 660
                (send gEgo:edgeHit(0))
            )
            (case 670
                (send gEgo:edgeHit(0))
            )
            (case 680
                (send gGame:handsOn())
            )
            (default 
                (send gEgo:
                    x(160)
                    y(160)
                )
                (send gGame:handsOn())
            )
        )
        (super:init())
        (switch (global119)
            (case 20
                (send gEgo:setAvoider(PAvoider))
                (chester:
                    init()
                    approachVerbs(4 2)
                    setScript(sChesterPaces)
                )
                (if (not proc0_2(72))
                    proc0_3(72)
                    (send (ScriptID(0 13)):setReal(ScriptID(0 13) 0 7))
                )
            )
            (case 22
                (send gNarrator:modeless(1))
                (cowboy1:
                    setLoop(Random(0 1))
                    cel(Random(0 3))
                    setScale(Scaler 100 50 175 95)
                    init()
                )
                (cowboy2:
                    setLoop(Random(2 3))
                    cel(Random(0 3))
                    setScale(-1 cowboy1)
                    init()
                )
                (if ((> global87 6) and (> (send gGame:detailLevel()) 3))
                    (cowboy3:
                        setLoop(Random(4 5))
                        cel(Random(0 3))
                        setScale(-1 cowboy1)
                        init()
                    )
                    (cowboy4:
                        setLoop(Random(6 7))
                        cel(Random(0 3))
                        setScale(-1 cowboy1)
                        init()
                    )
                )
                (if ((> global87 13) and (> (send gGame:detailLevel()) 1))
                    (cowboy5:
                        setLoop(Random(8 9))
                        cel(Random(0 3))
                        setScale(-1 cowboy1)
                        init()
                    )
                    (cowboy6:
                        setLoop(Random(10 11))
                        cel(Random(0 3))
                        setScale(-1 cowboy1)
                        init()
                    )
                )
            )
        )
        (if (== gGNumber 400)
            (send gGameMusic2:
                number(2145)
                loop(1)
                flags(1)
                play()
            )
            (send global2:setScript(sROFL))
        )
        (if (== gGNumber 670)
            (send gGameMusic1:fade(63 30 8 0))
        )(else
            (if ((<> global119 22) and (<> gGNumber 26))
                (switch (Random(0 3))
                    (case 0
                        = global135 673
                    )
                    (case 1
                        = global135 665
                    )
                    (case 2
                        = global135 666
                    )
                    (case 3
                        = global135 670
                    )
                )
                (send gGameMusic1:
                    number(global135)
                    loop(-1)
                    play()
                    setVol(63)
                )
            )
        )
        (if ((== gGNumber 500) or (== gGNumber 680))
            (send global2:addObstacle((send ((Polygon:new())):
                    type(3)
                    init(218 51 213 40 201 40 206 54 318 54 318 51)
                    yourself()
                )
))
        )(else
            (send global2:addObstacle((send ((Polygon:new())):
                    type(2)
                    init(0 0 319 0 319 109 304 109 301 102 279 102 276 110 205 110 168 113 151 74 147 74 147 114 134 114 129 105 51 105 51 78 37 78 37 105 0 105)
                    yourself()
                )
 (send ((Polygon:new())):
                    type(2)
                    init(0 174 319 174 319 189 0 189)
                    yourself()
                )
 
                (if ((== global119 8) or (== global119 9))
                    (beforePol:
                        type(2)
                        init(131 114 137 125 125 129 121 142 61 142 60 108 75 108 76 114)
                        name("beforePol")
                        yourself()
                    )
                )(else
                    (beforePol:
                        type(2)
                        init(131 114 137 125 111 125 105 123 64 123 64 108 75 108 76 114)
                        name("beforePol")
                        yourself()
                    )
                )
 (send ((Polygon:new())):
                    type(2)
                    init(8 107 23 107 23 118 8 118)
                    yourself()
                )
 (send ((Polygon:new())):
                    type(2)
                    init(302 109 302 122 283 122 283 109)
                    yourself()
                )
 (send ((Polygon:new())):
                    type(2)
                    init(200 112 215 112 215 120 200 120)
                    yourself()
                )
 (send ((Polygon:new())):
                    type(2)
                    init(243 111 258 111 258 120 243 120)
                    yourself()
                )
))
        )
        (if (>= global119 19)
            (momsDoor:
                view(252)
                loop(1)
                cel(0)
                x(140)
                y(91)
                locked(1)
                init()
                addToPic()
            )
        )(else
            (if (proc0_2(1) or (== gGNumber 500))
                (momsDoor:
                    locked(1)
                    init()
                )
            )(else
                (momsDoor:init())
            )
        )
        (if ((>= global119 8) and (<= global119 9))
            (horse1:
                init()
                cycleSpeed(10)
                setCycle(Fwd)
                setScript(sHorseStuff)
                approachVerbs(65)
            )
            (horse2:
                init()
                cycleSpeed(12)
                setCycle(Fwd)
                setScript((sHorseStuff:new()))
                approachVerbs(65)
            )
            proc958_0(132 2116)
        )
        (if (== gGNumber 500)
            (saloonDoor:
                locked(1)
                init()
                approachVerbs(0)
            )
        )(else
            (saloonDoor:init())
        )
        (glass:
            init()
            addToPic()
        )
        (bunting:
            init()
            setOnMeCheck(1 256)
        )
        (if (< (send gEgo:y) 75)
            (bunting:approachVerbs(40))
        )
        (if (proc0_2(33))
            (cannister:init())
        )
        (saloonWindow:init())
        (saloonWindow2:init())
        (saloon:init())
        (cafe:init())
        (momsWindow:init())
        (barrel:init())
        (hotelWindow:init())
        (hotelWindow2:init())
        (hotelWindow3:init())
        (hotelWindow4:init())
        (hotelWindow5:init())
        (if (< (send gEgo:y) 75)
            (hotelWindow:approachVerbs(4))
            (hotelWindow2:approachVerbs(4))
            (hotelWindow3:approachVerbs(4))
        )(else
            (hotelWindow4:approachVerbs(4))
            (hotelWindow5:approachVerbs(4))
        )
        (hotelDoor:init())
        (clutter:
            init()
            setOnMeCheck(1 4)
        )
        (post:
            init()
            setOnMeCheck(1 8)
        )
        (hotelBalcony:
            init()
            setOnMeCheck(1 32)
        )
        (momsPorch:
            init()
            setOnMeCheck(1 64)
        )
        (saloonPorch:
            init()
            setOnMeCheck(1 128)
        )
        (hotelPorch:
            init()
            setOnMeCheck(1 16)
        )
        (if (not < (send gEgo:y) 75)
            (hotelDoor:approachVerbs(4))
        )
        (if (not < (send gEgo:y) 75)
            (hotelDoor:approachVerbs(4))
        )
    )


    (method (doit)
        (super:doit())
        (if (script)
        )(else
            (if (((((< (send gEgo:y) 113) and (< 30 (send gEgo:x))) and (< (send gEgo:x) 55)) and ((< (send gEgo:heading) 46) or (> (send gEgo:heading) 314))) and local1)
                = local1 0
                (saloonDoor:doVerb(4))
            )(else
                (if (proc0_1(gEgo 2))
                    (send global2:newRoom(500))
                )
            )
        )
    )


    (method (dispose)
        (if (<> gNewRoomNumber 670)
            (send gGameMusic1:fade())
        )
        (if ((== global119 22) and (== gGNumber 500))
            (send gGameMusic2:mute(1 6))
        )
        (if (== global119 22)
            (send gNarrator:modeless(0))
        )
        proc958_0(0 927 12)
        (super:dispose())
    )

)
(instance sChesterPaces of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                = local0 
                    (if (not Random(0 2))
                        106
                    )(else
                        136
                    )
                (chester:
                    setLoop(0)
                    setCycle(Walk)
                    xStep(3)
                    setMotion(MoveTo local0 (chester:y) self)
                )
            )
            (case 1
                (if (== (chester:loop) 2)
                    (chester:
                        setLoop(0)
                        y(135)
                        setMotion(MoveTo 136 (chester:y) self)
                    )
                    --state
                )(else
                    (if (== (chester:x) 106)
                        (chester:
                            setLoop(2)
                            setCel(0)
                            y(133)
                        )
                        --state
                        = seconds Random(3 5)
                    )(else
                        = cycles 1
                    )
                )
            )
            (case 2
                (chester:
                    setLoop(1)
                    setMotion(MoveTo 75 (chester:y) self)
                )
            )
            (case 3
                (self:changeState(0))
            )
            (case 4
                (self:dispose())
            )
        )
    )

)
(instance sRowdysKill of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gGame:handsOff())
                = seconds 4
            )
            (case 1
                (send gFpMessager:say(25 0 0 0 self))
            )
            (case 2
                (send gEgo:setMotion(MoveFwd 20 self))
            )
            (case 3
                (send gEgo:
                    view(142)
                    setLoop(
                        (if (< (send gEgo:heading) 180)
                            0
                        )(else
                            1
                        )
)
                    setCel(0)
                    setSpeed(7)
                    setCycle(End self)
                )
            )
            (case 4
                = global122 6
                (send global2:newRoom(99))
                (self:dispose())
            )
        )
    )

)
(instance sKillOnBalcony of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gGame:handsOff())
                (send gEgo:
                    view(142)
                    setLoop(
                        (if (< (send gEgo:heading) 180)
                            0
                        )(else
                            1
                        )
)
                    setCel(0)
                    setSpeed(7)
                    setCycle(End self)
                )
            )
            (case 1
                = global122 6
                (send global2:newRoom(99))
                (self:dispose())
            )
        )
    )

)
(instance sROFL of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gGameMusic1:
                    number(2237)
                    loop(-1)
                    play()
                )
                0
            )
            (case 1
                0
            )
            (case 2
                (if ((<= global87 6) or (<= (send gGame:detailLevel()) 3))
                    = cycles 2
                )(else
                    0
                )
            )
            (case 3
                (if ((<= global87 6) or (<= (send gGame:detailLevel()) 3))
                    = cycles 2
                )(else
                    0
                )
            )
            (case 4
                (if ((<= global87 13) or (== (send gGame:detailLevel()) 1))
                    = cycles 2
                )(else
                    0
                )
            )
            (case 5
                (if ((<= global87 13) or (== (send gGame:detailLevel()) 1))
                    = cycles 2
                )(else
                    0
                )
                (send gGameMusic1:stop())
            )
            (case 6
                (send gGameMusic2:
                    number(2701)
                    flags(1)
                    loop(1)
                    play(self)
                )
            )
            (case 7
                proc0_4(33)
                = seconds 3
            )
            (case 8
                (send global2:newRoom(400))
                (self:dispose())
            )
        )
    )

)
(instance sEnterFrom500 of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gGame:handsOff())
                (send gGameMusic2:mute(0 6))
                (send gEgo:setMotion(MoveTo 212 54 self))
            )
            (case 1
                (if (== global119 22)
                    (send gFpMessager:say(25 0 0 0 self))
                )(else
                    = cycles 1
                )
            )
            (case 2
                (if (== global119 22)
                    (send gFpMessager:say(25 0 7 0 self))
                    (send gGameMusic1:
                        number(236)
                        loop(1)
                        flags(1)
                        play()
                    )
                )(else
                    (send gGame:handsOn())
                    (self:dispose())
                )
            )
            (case 3
                (send gNarrator:modeless(0))
                (send gGame:handsOn())
                (self:dispose())
            )
        )
    )

)
(instance sCloseSaloonDoors of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (saloonDoor:
                    setPri(6)
                    setCel(3)
                    setCycle(CT 6 1 self)
                )
            )
            (case 1
                (send gEgo:
                    posn((saloonDoor:moveToX) (saloonDoor:moveToY))
                    setMotion(PolyPath (saloonDoor:approachX) (saloonDoor:approachY) self)
                )
            )
            (case 2
                (doorSound:
                    number((saloonDoor:openSnd))
                    play()
                )
                (saloonDoor:
                    setPri(5)
                    setCycle(Swing 1 1 0 1 self)
                )
            )
            (case 3
                (saloonDoor:
                    doorState(3)
                    cue()
                )
                (self:dispose())
            )
        )
    )

)
(instance sOpenSaloonDoors of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gEgo:setMotion(PolyPath (saloonDoor:moveToX) (saloonDoor:moveToY) self))
            )
            (case 1
                (send gEgo:setHeading(0))
                (saloonDoor:
                    setPri(7)
                    setCycle(Swing 1 1 0 1 self)
                )
            )
            (case 2
                (saloonDoor:cue())
                (self:dispose())
            )
        )
    )

)
(instance sHorseStuff of Script
    (properties)

    (method (doit)
        (super:doit())
        (if ((local8 and (== (horse1:loop) 3)) and (== (horse1:cel) 4))
            = local8 0
            (horseSound:
                number(2116)
                play(horse1)
            )
        )
        (if ((local9 and (== (horse2:loop) 3)) and (== (horse2:cel) 4))
            = local9 0
            (horseSound2:
                number(2939)
                play(horse2)
            )
        )
    )


    (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))
                    (switch (client)
                        (case horse1
                            (horseSound:
                                number(2114)
                                play(horse1)
                            )
                        )
                        (case horse2
                            (horseSound2:
                                number(2115)
                                play(horse2)
                            )
                        )
                    )
                )
                = seconds Random(3 10)
            )
            (case 2
                (send client:setCycle(End self))
                (self:changeState(0))
            )
        )
    )

)
(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 gEgo:
                    put(21)
                    put(13)
                    put(20)
                )
                (send gGame:points(20 152))
                = 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 manBoarding of Prop
    (properties
        x 309
        y 112
        noun 23
        approachX 283
        approachY 129
        view 110
        loop 2
        cycleSpeed 10
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 1
                (send gFpMessager:say(noun theVerb 3))
            )
            (case 2
                (send gFpMessager:say(noun theVerb 3))
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance cannister of Prop
    (properties
        x 273
        y 90
        z 50
        noun 27
        view 230
        loop 2
        priority 7
        signal $0010
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 4
                (if (< (send gEgo:y) 75)
                    (send gEgo:get(39 self 2 self))
                    proc0_4(33)
                )(else
                    (send gFpMessager:say(noun 4 8))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance chester of Actor
    (properties
        x 75
        y 135
        noun 18
        view 233
        cycleSpeed 12
        moveSpeed 12
    )
)
(instance momsDoor of Door
    (properties
        x 140
        y 93
        noun 6
        approachX 147
        approachY 106
        view 230
        loop 1
        entranceTo 660
        lockedCase 12
        openSnd 2146
        closeSnd 2147
        openVerb 4
        moveToX 147
        moveToY 89
        enterType 0
        exitType 0
    )

    (method (init)
        (super:init())
        (if (== gGNumber 500)
            = lockedCase 13
        )(else
            = lockedCase 12
        )
    )


    (method (doVerb theVerb)
        (switch (theVerb)
            (case 1
                (if (> global119 17)
                    (send gFpMessager:say(6 1 6))
                )(else
                    (send gFpMessager:say(6 1))
                )
            )
            (case 4
                (if (> global119 17)
                    (send gFpMessager:say(6 4 6))
                )(else
                    (send global2:north(660))
                    (super:doVerb(theVerb))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance saloonDoor of Door
    (properties
        x 40
        y 94
        noun 7
        approachX 42
        approachY 112
        view 230
        cel 3
        priority 5
        signal $0010
        entranceTo 670
        lockedCase 13
        openSnd 2911
        closeSnd 2911
        openVerb 4
        moveToX 40
        moveToY 101
        enterType 0
        exitType 0
    )

    (method (init)
        = openScript sOpenSaloonDoors
        = closeScript sCloseSaloonDoors
        (super:init())
        = cel 3
    )


    (method (doVerb theVerb)
        (switch (theVerb)
            (case 4
                (send gEgo:edgeHit(1))
                (send global2:north(670))
                (super:doVerb(theVerb))
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )


    (method (cue)
        (super:cue())
        (if ((== doorState 0) and (== global119 22))
            (send global2:setScript(sRowdysKill))
        )
    )


    (method (open)
        (if (locked)
            (super:open())
        )(else
            (if ((send gUser:controls))
                (send gGame:handsOff())
            )
            = doorState 1
            (self:setCycle(CT 0 -1 self))
            (if ((self:openSnd))
                (doorSound:
                    number((self:openSnd))
                    play()
                )
            )
        )
    )


    (method (createPoly)
        (super:createPoly(28 103 28 100 57 100 57 103))
    )

)
(instance horse1 of Prop
    (properties
        x 97
        y 127
        noun 1
        approachX 106
        approachY 142
        view 116
        loop 2
        priority 8
        signal $4010
    )

    (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())
        = local8 1
    )

)
(instance horse2 of Prop
    (properties
        x 74
        y 127
        noun 1
        approachX 78
        approachY 142
        view 114
        loop 3
        priority 8
        signal $4010
    )

    (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())
        = local9 1
    )

)
(class Cowboy of Prop
    (properties
        x 0
        y 0
        z 0
        heading 0
        noun 29
        modNum -1
        nsTop 0
        nsLeft 0
        nsBottom 0
        nsRight 0
        sightAngle 26505
        actions 0
        onMeCheck $6789
        state $0000
        approachX 0
        approachY 0
        approachDist 0
        _approachVerbs 0
        yStep 2
        view -1
        loop 0
        cel 0
        priority 0
        underBits 0
        signal $0000
        lsTop 0
        lsLeft 0
        lsBottom 0
        lsRight 0
        brTop 0
        brLeft 0
        brBottom 0
        brRight 0
        scaleSignal $0000
        scaleX 128
        scaleY 128
        maxScale 128
        cycleSpeed 6
        script 0
        cycler 0
        timer 0
        detailLevel 0
        scaler 0
    )

    (method (init)
        (var temp0)
        (super:init())
        = temp0 Random(5 10)
        (if (== gGNumber 400)
            = view 103
            (if (>= loop 6)
                = view 104
                = loop (- loop 6)
            )
            (self:setCycle(ROsc temp0 0 2 self))
        )(else
            = view 101
            (self:setCycle(OccasionalCycle 1 10 30 2 6))
        )
    )


    (method (doVerb theVerb param2)
        (switch (theVerb)
            (case 47
                (send global2:setScript(sKillOnBalcony))
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )


    (method (cue)
        (if (== gGNumber 400)
            (self:setCycle(End sROFL))
        )
    )

)
(instance cowboy1 of Cowboy
    (properties
        x 228
        y 139
        view 101
    )

    (method (doit)
        (super:doit())
        (if (script)
        )(else
            (if (((local2 and (== view 101)) and (== cel 4)) and not local10)
                = local2 0
                (if (not % ++local11 3)
                    = local10 1
                    (yeeHawSound:play(self))
                    (if (== (yeeHawSound:number) 2954)
                        (yeeHawSound:number(2953))
                    )(else
                        (yeeHawSound:number(2954))
                    )
                )(else
                    (shot1:play(self))
                )
            )
        )
    )


    (method (cue)
        = local10 0
        = local2 1
        (super:cue())
    )

)
(instance cowboy2 of Cowboy
    (properties
        x 68
        y 133
        view 101
    )

    (method (doit)
        (super:doit())
        (if (script)
        )(else
            (if (((local3 and (== view 101)) and (== cel 4)) and not local10)
                = local3 0
                (shot2:play(self))
            )
        )
    )


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

)
(instance cowboy3 of Cowboy
    (properties
        x 119
        y 162
        view 101
    )

    (method (doit)
        (super:doit())
        (if (script)
        )(else
            (if (((local4 and (== view 101)) and (== cel 4)) and not local10)
                = local4 0
                (shot3:play(self))
            )
        )
    )


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

)
(instance cowboy4 of Cowboy
    (properties
        x 179
        y 118
        view 101
    )

    (method (doit)
        (super:doit())
        (if (script)
        )(else
            (if (((local5 and (== view 101)) and (== cel 4)) and not local10)
                = local5 0
                (shot4:play(self))
            )
        )
    )


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

)
(instance cowboy5 of Cowboy
    (properties
        x 285
        y 169
        view 101
    )

    (method (doit)
        (super:doit())
        (if (script)
        )(else
            (if (((local6 and (== view 101)) and (== cel 4)) and not local10)
                = local6 0
                (shot5:play(self))
            )
        )
    )


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

)
(instance cowboy6 of Cowboy
    (properties
        x 150
        y 130
        view 101
    )

    (method (doit)
        (super:doit())
        (if (script)
        )(else
            (if (((local7 and (== view 101)) and (== cel 4)) and not local10)
                = local7 0
                (shot6:play(self))
            )
        )
    )


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

)
(instance glass of View
    (properties
        x 103
        y 90
        noun 19
        view 231
        loop 2
        signal $4001
    )
)
(instance beforePol of Polygon
    (properties)
)
(instance saloonWindow of Feature
    (properties
        x 76
        y 78
        noun 19
        nsTop 67
        nsLeft 63
        nsBottom 91
        nsRight 89
    )
)
(instance saloonWindow2 of Feature
    (properties
        x 103
        y 79
        noun 19
        nsTop 67
        nsLeft 90
        nsBottom 91
        nsRight 116
    )
)
(instance saloon of Feature
    (properties
        x 65
        y 22
        noun 1
        nsTop -1
        nsLeft 34
        nsBottom 46
        nsRight 97
    )
)
(instance cafe of Feature
    (properties
        x 163
        y 25
        noun 2
        nsTop 5
        nsLeft 128
        nsBottom 46
        nsRight 198
    )
)
(instance momsWindow of Feature
    (properties
        x 181
        y 74
        noun 3
        nsTop 65
        nsLeft 170
        nsBottom 84
        nsRight 193
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 1
                (if (> global119 17)
                    (send gFpMessager:say(3 1 6))
                )(else
                    (send gFpMessager:say(3 1))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance barrel of Feature
    (properties
        x 119
        y 114
        noun 4
        nsTop 104
        nsLeft 110
        nsBottom 124
        nsRight 129
    )
)
(instance hotelWindow of Feature
    (properties
        x 236
        y 30
        noun 5
        nsTop 17
        nsLeft 229
        nsBottom 43
        nsRight 244
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 4
                (if (not < (send gEgo:y) 75)
                    (send gFpMessager:say(noun theVerb 10))
                )(else
                    (super:doVerb(theVerb))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance hotelWindow2 of Feature
    (properties
        x 271
        y 29
        noun 5
        nsTop 15
        nsLeft 263
        nsBottom 43
        nsRight 280
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 4
                (if (not < (send gEgo:y) 75)
                    (send gFpMessager:say(noun theVerb 10))
                )(else
                    (super:doVerb(theVerb))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance hotelWindow3 of Feature
    (properties
        x 311
        y 30
        noun 5
        nsTop 17
        nsLeft 304
        nsBottom 43
        nsRight 319
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 4
                (if (not < (send gEgo:y) 75)
                    (send gFpMessager:say(noun theVerb 10))
                )(else
                    (super:doVerb(theVerb))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance hotelWindow4 of Feature
    (properties
        x 241
        y 79
        noun 5
        nsTop 65
        nsLeft 212
        nsBottom 93
        nsRight 270
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 4
                (if (< (send gEgo:y) 75)
                    (send gFpMessager:say(noun theVerb 10))
                )(else
                    (super:doVerb(theVerb))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance hotelWindow5 of Feature
    (properties
        x 316
        y 79
        noun 5
        nsTop 65
        nsLeft 313
        nsBottom 93
        nsRight 319
        approachX 310
        approachY 114
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 4
                (if (< (send gEgo:y) 75)
                    (send gFpMessager:say(noun theVerb 10))
                )(else
                    (super:doVerb(theVerb))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance hotelDoor of Feature
    (properties
        x 291
        y 82
        noun 14
        nsTop 66
        nsLeft 276
        nsBottom 99
        nsRight 306
        approachX 289
        approachY 105
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 4
                (if (< (send gEgo:y) 75)
                    (send gFpMessager:say(noun theVerb 10))
                )(else
                    (super:doVerb(theVerb))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance clutter of Feature
    (properties
        x 160
        y 180
        noun 8
        onMeCheck $0004
    )
)
(instance post of Feature
    (properties
        x 100
        y 90
        noun 9
        onMeCheck $0008
    )
)
(instance hotelPorch of Feature
    (properties
        x 190
        y 80
        noun 10
        onMeCheck $0010
        approachX 235
        approachY 129
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 4
                (if (< (send gEgo:y) 75)
                    (send gFpMessager:say(noun theVerb 10))
                )(else
                    (super:doVerb(theVerb))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance hotelBalcony of Feature
    (properties
        x 190
        y 60
        noun 11
        onMeCheck $0020
    )
)
(instance bunting of Feature
    (properties
        x 271
        y 75
        noun 26
        onMeCheck $0100
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 1
                (if (proc0_2(1))
                    (send gFpMessager:say(26 1 11))
                )(else
                    (send gFpMessager:say(26 1))
                )
            )
            (case 40
                (if (< (send gEgo:y) 75)
                    (if (== global119 22)
                        (send gEgo:put(39))
                        (cannister:
                            init()
                            approachVerbs(4)
                        )
                        proc0_3(33)
                        (send gGame:points(5 145))
                    )(else
                        (send gFpMessager:say(26 40 9))
                    )
                )(else
                    (send gFpMessager:say(26 40 8))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance momsPorch of Feature
    (properties
        x 160
        y 80
        noun 12
        onMeCheck $0040
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 1
                (if (> global119 17)
                    (send gFpMessager:say(12 1 6))
                )(else
                    (send gFpMessager:say(12 1))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance saloonPorch of Feature
    (properties
        x 80
        y 80
        noun 13
        onMeCheck $0080
    )
)
(instance horseSound of FPSound
    (properties
        flags $0001
        number 2116
    )
)
(instance horseSound2 of FPSound
    (properties
        flags $0001
        number 2939
    )
)
(instance shot1 of FPSound
    (properties
        flags $0001
        number 2944
    )
)
(instance shot2 of FPSound
    (properties
        flags $0001
        number 2944
    )
)
(instance shot3 of FPSound
    (properties
        flags $0001
        number 2944
    )
)
(instance shot4 of FPSound
    (properties
        flags $0001
        number 2944
    )
)
(instance shot5 of FPSound
    (properties
        flags $0001
        number 2944
    )
)
(instance shot6 of FPSound
    (properties
        flags $0001
        number 2944
    )
)
(instance yeeHawSound of FPSound
    (properties
        flags $0001
        number 2954
    )
)
(instance doorSound of FPSound
    (properties)
)
