(version 2)
(include "sci.sh")
(exports
    0 rm230
)
(use "Main")
(use "Swing")
(use "FPRoom")
(use "PAvoider")
(use "Scaler")
(use "PolyPath")
(use "Polygon")
(use "CueObj")
(use "Door")
(use "n958")
(use "TimedCue")
(use "Cycle")
(use "View")
(use "Obj")
(script 230)


(local
    local0
    local1
    local2 =     1
    local3 =     1

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

    (method (init)
        (if (proc0_2(59))
            (self:setRegions(90))
        )
        (send gEgo:
            init()
            setScale(Scaler 100 50 175 95)
            normalize()
        )
        (switch (gGNumber)
            (case west
                = style 12
                (send gGame:handsOn())
            )
            (case east
                = style 11
                (if (not Random(0 5) and not proc0_2(26))
                    (stuntMan:
                        init()
                        setCel(0)
                        setScript(sStuntMan)
                    )
                )(else
                    (send gGame:handsOn())
                )
            )
            (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())
            )
            (case 26
                (if (proc0_2(80))
                    (send gGameMusic1:fade(63 5 1 0))
                    proc0_4(80)
                    (manBoarding:
                        init()
                        approachVerbs(4 2)
                        setScript(sCloseHotel)
                    )
                    (send gEgo:
                        x(140)
                        y(150)
                        setHeading(180)
                    )
                    (send gGame:handsOn())
                )(else
                    proc958_0(130 1814)
                    (send global2:setScript(sSepiaStart))
                )
            )
            (default 
                (send gEgo:
                    x(160)
                    y(160)
                )
                (send gGame:handsOn())
            )
        )
        (super:init())
        (if (== global119 14)
            0
        )(else
            (if (== gGNumber 670)
                (send gGameMusic1:fade(63 30 8 0))
            )(else
                (if ((<> global119 22) and (<> gGNumber 26))
                    (switch (Random(2 9))
                        (case 2
                            = global135 673
                        )
                        (case 3
                            = global135 673
                        )
                        (case 4
                            = global135 665
                        )
                        (case 5
                            = global135 665
                        )
                        (case 6
                            = global135 666
                        )
                        (case 7
                            = global135 666
                        )
                        (case 8
                            = global135 670
                        )
                        (case 9
                            = 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(
                (if (== gGNumber 26)
                    (send ((Polygon:new())):
                        type(2)
                        init(0 0 319 0 319 124 281 124 281 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()
                    )
                )(else
                    (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()
                )
 (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 (proc0_2(26))
            (fixGlass:setScript(sFixGlass))
        )(else
            (if (not (send gOldCast:contains(stuntMan)))
                (glass:
                    init()
                    addToPic()
                )
            )
        )
        (if ((not proc0_2(53) and (== global141 gNumber)) and (== global120 3))
            = local1 (send ((Polygon:new())):
                    type(2)
                    init(107 126 107 135 77 135 77 126)
                    yourself()
                )
            (send global2:addObstacle(local1))
            (horsePlop:
                init()
                approachVerbs(4)
            )
        )
        (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 (== gGNumber 500)
            (saloonDoor:
                locked(1)
                init()
                approachVerbs(0)
            )
        )(else
            (saloonDoor:init())
        )
        (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))
        )
        (if (proc0_2(52) and (<> gGNumber 26))
            (dummyCredits:
                init()
                setScript(ScriptID(32 0))
            )
        )
    )


    (method (doit)
        (super:doit())
        (if (local0 and (== PalVary(pvGET_CURRENT_STEP) 0))
            (sSepiaStart:cue())
            = local0 0
        )(else
            (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 local2)
                    = local2 0
                    (saloonDoor:doVerb(4))
                )(else
                    (if (proc0_1(gEgo 2))
                        (send global2:newRoom(500))
                    )
                )
            )
        )
    )


    (method (dispose)
        (if ((<> gNewRoomNumber 670) and (<> global119 14))
            (send gGameMusic1:fade())
        )
        (if ((fixGlass:script))
            (sFixGlass:dispose())
        )
        proc958_0(0 927 12)
        DisposeScript(32)
        (super:dispose())
    )


    (method (cue)
        = local3 1
    )

)
(instance sSepiaStart of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gIconBar:disable())
                (send gGame:setCursor(996))
                (manBoarding:
                    init()
                    approachVerbs(4 2)
                )
                (send gEgo:
                    x(-10)
                    y(150)
                )
                = local0 1
                PalVary(pvINIT 230 0)
                = seconds 3
            )
            (case 1
                (manBoarding:setScript(sCloseHotel))
                (send (ScriptID(1814 57)):modeless(1))
                PalVary(pvREVERSE 8 0 1)
            )
            (case 2
                (send gFpMessager:say(28 0 0 0 self))
            )
            (case 3
                (send (ScriptID(1814 57)):modeless(0))
                (send gEgo:setMotion(MoveTo 140 150 self))
            )
            (case 4
                (send gEgo:
                    setMotion(0)
                    setHeading(180)
                    setSpeed(4)
                )
                UnLoad(128 (send (ScriptID(1814 57)):view))
                (send gIconBar:enable())
                (send gGame:handsOn())
                (self:dispose())
            )
        )
    )

)
(instance sCloseHotel of Script
    (properties)

    (method (doit)
        (super:doit())
        (if (((== (send client:loop) 0) and (== (send client:cel) 0)) and local3)
            = local3 0
            (send gGameMusic2:
                number(2105)
                loop(1)
                flags(1)
                play(rm230)
            )
        )
    )


    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (manBoarding:
                    setLoop(2)
                    setCel(0)
                    setCycle(End self)
                )
            )
            (case 1
                (manBoarding:
                    setLoop(0)
                    setCel(0)
                    setCycle(TimedCue 3 self)
                )
            )
            (case 2
                (manBoarding:
                    setLoop(2)
                    setCel((manBoarding:lastCel()))
                    setCycle(Beg self)
                )
            )
            (case 3
                = ticks 120
            )
            (case 4
                (self:changeState(0))
            )
            (case 5
                (self:dispose())
            )
        )
    )

)
(instance sStuntMan of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                = seconds 3
            )
            (case 1
                proc0_3(26)
                (stuntMan:
                    cycleSpeed(9)
                    setCycle(End self)
                )
                (send gGameMusic2:
                    number(2231)
                    loop(1)
                    flags(1)
                    play()
                )
            )
            (case 2
                (send ((send global2:obstacles)):delete(beforePol))
                (beforePol:dispose())
                (send global2:addObstacle((send ((Polygon:new())):
                        type(2)
                        init(131 114 137 125 130 136 123 136 107 130 91 137 83 137 64 132 64 123 64 108 75 108 76 114)
                        yourself()
                    )
))
                (stuntMan:
                    ignoreActors(1)
                    setLoop(1)
                    posn(107 135 0)
                    noun(21)
                    addToPic()
                )
                (stuntGuy:init())
                (send gGameMusic2:
                    number(
                        (if (<= global120 2)
                            2925
                        )(else
                            2935
                        )
)
                    loop(1)
                    flags(1)
                    play()
                )
                (saloonWindow2:noun(22))
                (send gGame:handsOn())
                (self:dispose())
            )
        )
    )

)
(instance sFixGlass of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (fixGlass:
                    init()
                    approachVerbs(4 2)
                )
                = seconds 3
            )
            (case 1
                proc0_4(26)
                (fixGlass:
                    setAvoider(PAvoider)
                    cycleSpeed(12)
                    setCycle(End self)
                )
            )
            (case 2
                = seconds 4
            )
            (case 3
                (glass:init())
                (fixGlass:
                    setLoop(4)
                    setCel(1)
                    setPri(-1)
                    posn(106 106)
                )
                = cycles 2
            )
            (case 4
                (fixGlass:
                    setLoop(1)
                    posn(103 106)
                    cycleSpeed(6)
                    setCycle(Walk)
                    setMotion(PolyPath 152 119 self)
                )
            )
            (case 5
                (fixGlass:
                    setLoop(2)
                    setMotion(PolyPath 134 137 self)
                )
            )
            (case 6
                (fixGlass:setMotion(PolyPath -15 137 self))
            )
            (case 7
                (self:dispose())
            )
        )
    )

)
(instance sEnterFrom500 of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gGame:handsOff())
                (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))
                    (send gGameMusic2:
                        number(236)
                        loop(1)
                        flags(1)
                        play()
                    )
                )
                (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 fixGlass of Actor
    (properties
        x 106
        y 109
        noun 23
        view 232
        detailLevel 2
    )

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

)
(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 stuntMan of Prop
    (properties
        x 103
        y 1
        z -89
        view 231
        priority 8
        signal $4011
    )
)
(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 (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 horsePlop of Prop
    (properties
        x 92
        y 130
        noun 24
        approachX 84
        approachY 138
        view 129
        loop 2
        signal $4000
        cycleSpeed 10
    )

    (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(local1))
                (send local1:dispose())
                (self:dispose())
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance dummyCredits of Prop
    (properties
        x -10
        y -10
        view 996
    )
)
(instance glass of View
    (properties
        x 103
        y 90
        noun 19
        view 231
        loop 2
        signal $4001
    )
)
(instance beforePol of Polygon
    (properties)
)
(instance stuntGuy of Feature
    (properties
        x 91
        y 129
        noun 21
        nsTop 124
        nsLeft 67
        nsBottom 135
        nsRight 129
    )
)
(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 doorSound of FPSound
    (properties)
)
