(version 2)
(include "sci.sh")
(exports
    0 fpInv
    1 invWin
    2 resetInv
)
(use "Main")
(use "Print")
(use "BorderWindow")
(use "IconI")
(use "InvI")
(use "Obj")
(script 15)


(local
    local0
    local1
    local2
    local3
    local4

)
(class FPIconItem of IconI
    (properties
        view -1
        loop -1
        cel -1
        nsLeft 0
        nsTop -1
        nsRight 0
        nsBottom 0
        state $0000
        cursor -1
        type $4000
        message -1
        modifiers $0000
        signal $0001
        maskView 0
        maskLoop 0
        maskCel 0
        highlightColor 0
        lowlightColor 0
        noun 0
        modNum 0
        helpVerb 0
    )

    (method (ownedBy)
        return 0
    )

)
(class FPInvItem of InvI
    (properties
        view 0
        loop 0
        cel 0
        nsLeft 0
        nsTop 0
        nsRight 0
        nsBottom 0
        state $0000
        cursor 999
        type $4000
        message 0
        modifiers $0000
        signal $0000
        maskView 0
        maskLoop 0
        maskCel 0
        highlightColor 0
        lowlightColor 0
        noun 0
        modNum -1
        helpVerb 0
        owner 0
        script 0
        value 0
        realOwner 0
    )

    (method (init)
        = lowlightColor 19
        (super:init())
    )


    (method (ownedBy param1)
        return 
            (if (== owner param1)
            )(else
                == realOwner param1
            )
    )


    (method (doVerb theVerb)
        (if (not proc999_5(name "Med 1" "Med 2" "Med 3" "Incorrect Med" "Incorrect Med2" "Correct Rx"))
            (send gNarrator:
                name(name)
                showTitle(1)
            )
        )
        (if (== theVerb 1)
            (send gFpMessager:say(noun 1 0 0 0 15))
        )(else
            (if (not proc999_5(theVerb 3 4 2 7 8))
                (if (Message(msgSIZE + view 1000 noun theVerb 0 1))
                    (send gFpMessager:say(noun theVerb 0 0 0 (+ view 1000)))
                )(else
                    (send gFpMessager:say(0 6 0 0 0 15))
                )
            )(else
                (super:doVerb(theVerb))
            )
        )
    )


    (method (cue)
        (switch (local1)
            (case 1
                (Neckerchief:view(996))
                (send gInv:hide())
                (send gInv:show())
                (send gFpMessager:say(58 4 25 0 self 15))
                ++local1
            )
            (case 2
                (send gFpMessager:say(58 4 26 0 self 15))
                (Neckerchief:
                    view(92)
                    loop(1)
                    cel(0)
                )
                = local1 0
            )
            (default 
                (send gInv:hide())
                (send gInv:show())
            )
        )
    )

)
(instance public resetInv of Code
    (properties)

    (method (doit param1)
        (var temp0, temp1, temp2, temp3)
        = temp3 0
        = local3 param1
        = temp2 0
        = temp0 temp2
        (while (< temp0 61)
            = temp1 (send gInv:at(temp0))
            (if ((== (send temp1:owner) local3) or (== (send temp1:realOwner) local3))
                ++temp3
                (send temp1:
                    realOwner(local3)
                    owner(0)
                )
                (if (<= ++temp2 8)
                    (send temp1:owner(local3))
                    = local2 temp0
                )
            )
            ++temp0
        )
        (if (<= temp3 8)
            (invMore:loop(6))
        )(else
            (invMore:loop(5))
        )
    )

)
(instance public fpInv of Inv
    (properties
        normalHeading 9
        empty 27
    )

    (method (init)
        = gInv self
        (self:
            window(invWin)
            helpIconItem(invHelp)
            selectIcon(invSelect)
            okButton(ok)
            add({Baking Soda} Beer Boots Bullets {Candle Wax} Charcoal {Church Key} {Claim Check} Clay {Cleaning Kit} Clothes Coffee {Correct Rx} Deflatulizer {Deposit Key} {Desk Key} {Door Key} Elixir {Empty Bottles} {Empty Mold} {Filled Sack} {Gas Mask} {Helen's Rx} {Horse Plop} {Ice Pick} {Incorrect Med} {Incorrect Med2} Knife Ladder Lasso {Leather Strap} Letter {Madame's Rx} Medallion {Med 1} {Med 2} {Med 3} Money Neckerchief {Nitrous Oxide} {Open Beer} {Paper Sack} {Penelope's Rx} Pie Pistols {Post Cards} {Prep G} {Pure Solution} Rope {Sharp Ear} {Shot Glass} Shovel {Silver Ear} {Silver Filled Mold} Snails Sword {Tin Can} {Tower H20} {Under Glass} {Wax Ear} {Wax Filled Mold} invLook invHand invSelect invHelp invMore ok)
            eachElementDo(#highlightColor 37)
            eachElementDo(#lowlightColor 33)
            eachElementDo(#modNum 15)
            eachElementDo(#init)
            state(2048)
        )
    )


    (method (hide)
        = highlightedIcon 0
        (super:hide())
    )


    (method (drawInvWindow param1 param2)
        (var temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, invFirst, temp9, temp10, temp11, temp12, temp13, temp14, temp15, temp16, temp17, temp18, temp19, temp20, invWindow, temp22[50])
        = temp5 0
        = temp4 temp5
        = temp3 temp4
        = temp2 temp3
        = temp1 temp2
        = temp0 temp1
        = invFirst (self:first())
        (while (invFirst)
            = temp9 NodeValue(invFirst)
            (if ((send temp9:isKindOf(InvI)))
                (if (== (send temp9:owner) param1)
                    (send temp9:signal((& (send temp9:signal) $fffb)))
                    ++temp0
                    = temp6 CelWide((send temp9:view) (send temp9:loop) (send temp9:cel))
                    (if (> temp6 temp2)
                        = temp2 temp6
                    )
                    = temp7 CelHigh((send temp9:view) (send temp9:loop) (send temp9:cel))
                    (if (> temp7 temp1)
                        = temp1 temp7
                    )
                )(else
                    (send temp9:signal((| (send temp9:signal) $0004)))
                )
            )(else
                ++temp3
                = temp5 (+ temp5 CelWide((send temp9:view) (send temp9:loop) (send temp9:cel)))
                = temp7 CelHigh((send temp9:view) (send temp9:loop) (send temp9:cel))
                (if (> temp7 temp4)
                    = temp4 temp7
                )
            )
            = invFirst (self:next(invFirst))
        )
        (if (not temp0)
            (Print:
                addTextF("%s %s" normalHeading empty)
                init()
            )
            return 0
        )
        = temp16 Sqrt(temp0)
        (if (> (* temp16 temp16) temp0)
            --temp16
        )
        (if (> temp16 3)
            = temp16 3
        )
        = local4 (/ temp0 temp16)
        (if (< (* temp16 local4) temp0)
            ++local4
        )
        = temp10 proc999_3((+ 4 temp5) (* local4 (+ 4 temp2)))
        = temp11 (* temp16 (+ 4 temp1))
        = temp12 (/ (- 190 temp11) 2)
        = temp13 (/ (- 320 temp10) 2)
        = temp14 (+ temp12 temp11)
        = temp15 (+ temp13 temp10)
        = invWindow (self:window)
        (if (invWindow)
            (send (= invWindow (self:window)):
                top(temp12)
                left(temp13)
                right(temp15)
                bottom(temp14)
                open()
            )
        )
        = temp20 local4
        (if (temp0)
            = temp18 (+ 2 
                (if ((send invWindow:respondsTo(#yOffset)))
                    (send invWindow:yOffset)
                )(else
                    0
                )
)
            = temp17 (+ 4 
                (if ((send invWindow:respondsTo(#xOffset)))
                    (send invWindow:xOffset)
                )(else
                    0
                )
)
            = temp19 temp17
            = invFirst (self:first())
            (while (invFirst)
                = temp9 NodeValue(invFirst)
                (if (not (& (send temp9:signal) $0004) and (send temp9:isKindOf(InvI)))
                    (if (not & (send temp9:signal) $0080)
                        = temp6 CelWide((send temp9:view) (send temp9:loop) (send temp9:cel))
                        = temp7 CelHigh((send temp9:view) (send temp9:loop) (send temp9:cel))
                        (send temp9:
                            nsLeft(+ temp17 (/ (- temp2 temp7) 2))
                            nsTop(+ temp18 (/ (- temp1 temp7) 2))
                        )
                        (send temp9:
                            nsRight(+ (send temp9:nsLeft) temp6)
                            nsBottom(+ (send temp9:nsTop) temp7)
                        )
                        (if (--temp20)
                            = temp17 (+ temp17 temp2)
                        )(else
                            = temp20 local4
                            = temp18 (+ temp18 temp1)
                            = temp17 temp19
                        )
                    )(else
                        = temp17 (send temp9:nsLeft)
                        = temp18 (send temp9:nsTop)
                    )
                    (send temp9:show())
                    (if (== temp9 param2)
                        (send temp9:highlight())
                    )
                )
                = invFirst (self:next(invFirst))
            )
        )
        = temp17 (/ (- (- (send invWindow:right) (send invWindow:left)) temp5) 2)
        = temp11 (- (send invWindow:bottom) (send invWindow:top))
        = temp18 32767
        = invFirst (self:first())
        (while (invFirst)
            = temp9 NodeValue(invFirst)
            (if (not (send temp9:isKindOf(InvI)))
                (send temp9:nsTop(0))
                = temp6 CelWide((send temp9:view) (send temp9:loop) (send temp9:cel))
                = temp7 CelHigh((send temp9:view) (send temp9:loop) (send temp9:cel))
                (if (not & (send temp9:signal) $0080)
                    (if (== temp18 32767)
                        = temp18 (- temp11 temp7)
                    )
                    (send temp9:
                        nsLeft(temp17)
                        nsTop(temp18)
                        nsBottom(temp11)
                        nsRight(+ temp17 temp6)
                    )
                )
                = temp17 (+ (send temp9:nsLeft) temp6)
                = temp18 (send temp9:nsTop)
                (send temp9:
                    signal(& (send temp9:signal) $fffb)
                    show()
                )
            )
            = invFirst (self:next(invFirst))
        )
        return 1
    )

)
(instance public invWin of InsetWindow
    (properties
        topBordHgt 28
        botBordHgt 5
    )

    (method (open)
        (var temp0, gInvFirst, temp2)
        = temp0 0
        = gInvFirst (send gInv:first())
        (while (gInvFirst)
            = temp2 NodeValue(gInvFirst)
            (if (not (send temp2:isKindOf(InvI)))
                = temp0 (+ temp0 CelWide((send temp2:view) (send temp2:loop) (send temp2:cel)))
            )
            = gInvFirst (send gInv:next(gInvFirst))
        )
        (super:open())
        (invLook:nsLeft((/ (- (- right left) temp0) 2)))
    )

)
(instance ok of FPIconItem
    (properties
        view 991
        loop 3
        cel 0
        cursor 999
        signal $0043
        noun 17
        helpVerb 7
    )
)
(instance invLook of FPIconItem
    (properties
        view 991
        loop 2
        cel 0
        cursor 1
        message 1
        signal $0081
        noun 16
        helpVerb 7
    )
)
(instance invHand of FPIconItem
    (properties
        view 991
        loop 0
        cel 0
        cursor 2
        message 4
        noun 14
        helpVerb 7
    )
)
(instance invHelp of FPIconItem
    (properties
        view 991
        loop 1
        cel 0
        cursor 9
        message 7
        signal $0003
        noun 15
        helpVerb 7
    )
)
(instance invSelect of FPIconItem
    (properties
        view 991
        loop 4
        cel 0
        cursor 999
        noun 18
        helpVerb 7
    )
)
(instance invMore of FPIconItem
    (properties
        view 991
        loop 5
        cel 0
        cursor 999
        signal $0003
        maskView 991
        noun 43
        helpVerb 7
    )

    (method (select param1)
        (var temp0, temp1, temp2, temp3)
        return 
            (if ((super:select(rest param1)) and (== loop 5))
                = temp0 0
                (while (<= temp0 local2)
                    = temp2 (send gInv:at(temp0))
                    (if (== (send temp2:owner) local3)
                        (send temp2:
                            realOwner(local3)
                            owner(0)
                        )
                    )
                    ++temp0
                )
                = temp3 0
                = temp1 local2
                (while (< temp0 61)
                    = temp2 (send gInv:at(temp0))
                    (if ((== (send temp2:realOwner) local3) and (<= ++temp3 8))
                        (send temp2:owner(local3))
                        = local2 temp0
                    )
                    ++temp0
                )
                (if (== temp1 local2)
                    (resetInv:doit(local3))
                )
                (send gInv:
                    hide()
                    highlightedIcon(0)
                    show(local3)
                )
                return 0
            )(else
                0
            )
    )


    (method (highlight param1)
        (if (== loop 5)
            (super:highlight(rest param1))
        )
    )

)
(instance {Door Key} of FPInvItem
    (properties
        view 40
        loop 1
        cursor 40
        message 9
        signal $0002
        noun 47
    )
)
(instance {Penelope's Rx} of FPInvItem
    (properties
        view 41
        loop 1
        cursor 41
        message 10
        signal $0002
        noun 1
    )
)
(instance {Med 1} of FPInvItem
    (properties
        view 42
        loop 1
        cursor 42
        message 11
        signal $0002
        noun 5
    )

    (method (doVerb theVerb param2)
        (switch (theVerb)
            (default 
                (send gNarrator:
                    name("Medication")
                    showTitle(1)
                )
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance {Helen's Rx} of FPInvItem
    (properties
        view 43
        loop 1
        cursor 43
        message 12
        signal $0002
        noun 2
    )
)
(instance {Med 2} of FPInvItem
    (properties
        view 44
        loop 1
        cursor 44
        message 13
        signal $0002
        noun 6
    )

    (method (doVerb theVerb param2)
        (send gNarrator:
            name("Medication")
            showTitle(1)
        )
        (switch (theVerb)
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance {Madame's Rx} of FPInvItem
    (properties
        view 45
        loop 1
        cursor 45
        message 14
        signal $0002
        noun 3
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 15
                (send gNarrator:
                    name(name)
                    showTitle(1)
                )
                (if ((proc0_2(20) or proc0_2(21)) or proc0_2(45))
                    (send gFpMessager:say(10 0 28 0 0 15))
                )(else
                    (send gInv:hide())
                    (send global2:newRoom(680))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance {Shot Glass} of FPInvItem
    (properties
        view 46
        loop 1
        cursor 46
        message 15
        signal $0002
        noun 8
    )
)
(instance {Under Glass} of FPInvItem
    (properties
        view 47
        loop 1
        cursor 47
        message 16
        signal $0002
        noun 10
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 4
                (send gNarrator:
                    name(name)
                    showTitle(1)
                )
                (if ((proc0_2(20) or proc0_2(21)) or proc0_2(45))
                    (send gFpMessager:say(10 0 28 0 0 15))
                )(else
                    (send gInv:hide())
                    (send global2:newRoom(680))
                )
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance {Correct Rx} of FPInvItem
    (properties
        view 48
        loop 1
        cursor 48
        message 17
        signal $0002
        noun 11
    )

    (method (doVerb theVerb param2)
        (send gNarrator:
            name("Madame's Rx")
            showTitle(1)
        )
        (switch (theVerb)
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance {Med 3} of FPInvItem
    (properties
        view 49
        loop 1
        cursor 49
        message 18
        signal $0002
        noun 7
    )

    (method (doVerb theVerb param2)
        (send gNarrator:
            name("Medication")
            showTitle(1)
        )
        (switch (theVerb)
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance {Incorrect Med} of FPInvItem
    (properties
        view 50
        loop 1
        cursor 50
        message 71
        signal $0002
        noun 71
    )

    (method (doVerb theVerb param2)
        (send gNarrator:
            name("Medication")
            showTitle(1)
        )
        (switch (theVerb)
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance {Incorrect Med2} of FPInvItem
    (properties
        view 99
        loop 1
        cursor 99
        message 83
        signal $0002
        noun 70
    )

    (method (doVerb theVerb param2)
        (send gNarrator:
            name("Medication")
            showTitle(1)
        )
        (switch (theVerb)
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance {Prep G} of FPInvItem
    (properties
        view 51
        loop 1
        cursor 51
        message 20
        signal $0002
        noun 13
    )
)
(instance {Tower H20} of FPInvItem
    (properties
        view 54
        loop 1
        cursor 54
        message 23
        signal $0002
        noun 21
    )
)
(instance {Tin Can} of FPInvItem
    (properties
        view 55
        loop 1
        cursor 55
        message 24
        signal $0002
        noun 22
    )

    (method (doVerb theVerb param2)
        (send gNarrator:
            name(name)
            showTitle(1)
        )
        (switch (theVerb)
            (case 25
                (send ((send gInv:at(24))):owner(gEgo))
                (send gEgo:put(24))
                (send gInv:curIcon(0))
                proc0_3(55)
                (if (== ++local0 3)
                    (send ((send gInv:at(56))):owner(gEgo))
                    (send gEgo:put(56))
                    (send gEgo:get(-1 21))
                    (send ((send gInv:at(21))):owner(gEgo))
                    = global119 9
                    (send (ScriptID(0 13)):setReal(ScriptID(0 13) 0 15))
                    (if (not proc999_5(gNumber 410 600 610 620 630 640 650 660 670 690 710 720 730))
                        (send (ScriptID(0 14)):setReal(ScriptID(0 14) 40))
                    )
                )
                (send gFpMessager:say(noun theVerb 0 0 self 15))
                (send gGame:points(5))
            )
            (case 26
                (send ((send gInv:at(5))):owner(gEgo))
                (send gEgo:put(5))
                proc0_3(17)
                (send gInv:curIcon(0))
                proc0_3(57)
                (if (== ++local0 3)
                    (send ((send gInv:at(56))):owner(gEgo))
                    (send gEgo:put(56))
                    (send gEgo:get(-1 21))
                    (send ((send gInv:at(21))):owner(gEgo))
                    = global119 9
                    (send (ScriptID(0 13)):setReal(ScriptID(0 13) 0 10))
                    (if (not proc999_5(gNumber 410 600 610 620 630 640 650 660 670 690 710 720 730))
                        (send (ScriptID(0 14)):setReal(ScriptID(0 14) 40))
                    )
                )
                (send gFpMessager:say(noun theVerb 0 0 self 15))
                (send gGame:points(3))
            )
            (case 27
                (if (proc0_2(55))
                    (send ((send gInv:at(30))):owner(gEgo))
                    (send gEgo:put(30))
                    proc0_3(56)
                    (send gInv:curIcon(0))
                    = cursor (= view 59)
                    (if (== ++local0 3)
                        (send ((send gInv:at(56))):owner(gEgo))
                        (send gEgo:put(56))
                        (send gEgo:get(-1 21))
                        (send ((send gInv:at(21))):owner(gEgo))
                        = global119 9
                        (send (ScriptID(0 13)):setReal(ScriptID(0 13) 0 10))
                        (if (not proc999_5(gNumber 410 600 610 620 630 640 650 660 670 690 710 720 730))
                            (send (ScriptID(0 14)):setReal(ScriptID(0 14) 40))
                        )
                    )
                    (send gInv:curIcon(0))
                    (send gFpMessager:say(noun theVerb 0 0 self 15))
                    (send gGame:points(5))
                )(else
                    (send gFpMessager:say(noun theVerb 21 0 0 15))
                )
            )
            (case 1
                (if (proc0_2(55) and proc0_2(56))
                    (send gFpMessager:say(noun 1 16 0 0 15))
                )(else
                    (if (proc0_2(57) and proc0_2(56))
                        (send gFpMessager:say(noun 1 17 0 0 15))
                    )(else
                        (if (proc0_2(57) and proc0_2(55))
                            (send gFpMessager:say(noun 1 18 0 0 15))
                        )(else
                            (if (proc0_2(55))
                                (send gFpMessager:say(noun 1 14 0 0 15))
                            )(else
                                (if (proc0_2(56))
                                    (send gFpMessager:say(noun 1 19 0 0 15))
                                )(else
                                    (if (proc0_2(57))
                                        (send gFpMessager:say(noun 1 20 0 0 15))
                                    )(else
                                        (super:doVerb(theVerb rest param2))
                                    )
                                )
                            )
                        )
                    )
                )
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance {Ice Pick} of FPInvItem
    (properties
        view 56
        loop 1
        cursor 56
        message 25
        signal $0002
        noun 24
    )
)
(instance Charcoal of FPInvItem
    (properties
        view 57
        loop 1
        cursor 57
        message 26
        signal $0002
        noun 4
    )
)
(instance {Leather Strap} of FPInvItem
    (properties
        view 58
        loop 1
        cursor 58
        message 27
        signal $0002
        noun 25
    )
)
(instance {Gas Mask} of FPInvItem
    (properties
        view 59
        loop 1
        cursor 59
        message 28
        signal $0002
        noun 26
    )
)
(instance Deflatulizer of FPInvItem
    (properties
        view 60
        loop 1
        cursor 60
        message 29
        signal $0002
        noun 27
    )
)
(instance Snails of FPInvItem
    (properties
        view 61
        loop 1
        cursor 61
        message 30
        signal $0002
        noun 28
    )

    (method (doVerb theVerb param2)
        (send gNarrator:
            name(name)
            showTitle(1)
        )
        (switch (theVerb)
            (case 33
                (send gFpMessager:say(noun theVerb 0 0 self 15))
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance Money of FPInvItem
    (properties
        view 62
        loop 1
        cursor 62
        message 31
        signal $0002
        noun 29
    )
)
(instance Beer of FPInvItem
    (properties
        view 63
        loop 1
        cursor 63
        message 32
        signal $0002
        noun 30
    )

    (method (doVerb theVerb)
        (switch (theVerb)
            (case 35
                (send gNarrator:
                    name(name)
                    showTitle(1)
                )
                (send ((send gInv:at(1))):owner(gEgo))
                (send gEgo:
                    put(1)
                    get(-1 40)
                )
                (send gInv:curIcon(0))
                (send ((send gInv:at(40))):owner(gEgo))
                (send gFpMessager:say(noun theVerb 0 0 self 15))
                (send gGame:points(2))
            )
            (default 
                (super:doVerb(theVerb))
            )
        )
    )

)
(instance {Open Beer} of FPInvItem
    (properties
        view 64
        loop 1
        cursor 64
        message 33
        signal $0002
        noun 31
    )
)
(instance {Empty Bottles} of FPInvItem
    (properties
        view 65
        loop 1
        cursor 65
        message 34
        signal $0002
        noun 32
    )
)
(instance {Church Key} of FPInvItem
    (properties
        view 66
        loop 1
        cursor 66
        message 35
        signal $0002
        noun 33
    )
)
(instance Ladder of FPInvItem
    (properties
        view 67
        loop 1
        cursor 67
        message 36
        signal $0002
        noun 34
    )
)
(instance Rope of FPInvItem
    (properties
        view 68
        loop 1
        cursor 68
        message 37
        signal $0002
        noun 35
    )

    (method (doVerb theVerb param2)
        (switch (theVerb)
            (case 4
                (send gNarrator:
                    name(name)
                    showTitle(1)
                )
                (send ((send gInv:at(48))):owner(gEgo))
                (send gEgo:put(48))
                (send gEgo:get(-1 29))
                (send gInv:curIcon(0))
                (send ((send gInv:at(29))):owner(gEgo))
                (send gFpMessager:say(noun theVerb 0 0 self 15))
                (send gGame:points(2))
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance Lasso of FPInvItem
    (properties
        view 69
        loop 1
        cursor 69
        message 38
        signal $0002
        noun 36
    )
)
(instance {Pure Solution} of FPInvItem
    (properties
        view 70
        loop 1
        cursor 70
        message 39
        signal $0002
        noun 37
    )
)
(instance {Nitrous Oxide} of FPInvItem
    (properties
        view 71
        loop 1
        cursor 71
        message 40
        signal $0002
        noun 38
    )
)
(instance {Baking Soda} of FPInvItem
    (properties
        view 72
        loop 1
        cursor 72
        message 41
        signal $0002
        noun 39
    )
)
(instance {Post Cards} of FPInvItem
    (properties
        view 73
        loop 1
        cursor 73
        message 42
        signal $0002
        noun 40
    )
)
(instance {Candle Wax} of FPInvItem
    (properties
        view 74
        loop 1
        cursor 74
        message 43
        signal $0002
        noun 41
    )

    (method (doVerb theVerb param2)
        (switch (theVerb)
            (case 44
                (send gNarrator:
                    name(name)
                    showTitle(1)
                )
                (send ((send gInv:at(4))):owner(gEgo))
                (send gEgo:put(4))
                (send ((send gInv:at(27))):owner(gEgo))
                (send gEgo:put(27))
                (send gEgo:get(-1 59))
                (send gInv:curIcon(0))
                (send ((send gInv:at(59))):owner(gEgo))
                (send gFpMessager:say(noun theVerb 0 0 self 15))
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance Knife of FPInvItem
    (properties
        view 75
        loop 1
        cursor 75
        message 44
        signal $0002
        noun 42
    )
)
(instance {Desk Key} of FPInvItem
    (properties
        view 76
        loop 1
        cursor 76
        message 45
        signal $0002
        noun 9
    )
)
(instance Letter of FPInvItem
    (properties
        view 77
        loop 1
        cursor 77
        message 62
        signal $0002
        noun 62
    )
)
(instance Shovel of FPInvItem
    (properties
        view 78
        loop 1
        cursor 78
        message 63
        signal $0002
        noun 63
    )
)
(instance {Deposit Key} of FPInvItem
    (properties
        view 79
        loop 1
        cursor 79
        message 46
        signal $0002
        noun 45
    )
)
(instance Pistols of FPInvItem
    (properties
        view 80
        loop 1
        cursor 10
        message 47
        signal $0002
        noun 46
    )

    (method (doVerb theVerb param2)
        (send gNarrator:
            name(name)
            showTitle(1)
        )
        (switch (theVerb)
            (case 51
                = global119 17
                (send ((send gInv:at(3))):owner(gEgo))
                (send gEgo:put(3))
                proc0_3(54)
                (send gInv:curIcon(0))
                (send gFpMessager:say(noun theVerb 0 0 self 15))
            )
            (case 50
                (send ((send gInv:at(9))):owner(gEgo))
                (send gEgo:put(9))
                proc0_3(4)
                (send gInv:curIcon(0))
                (if (proc0_2(54))
                    (send gFpMessager:say(noun theVerb 27 0 self 15))
                )(else
                    (send gFpMessager:say(noun theVerb 0 0 self 15))
                )
                (send gGame:points(5))
            )
            (case 4
                (if (== global119 25)
                    (send gInv:
                        curIcon(0)
                        hide()
                    )
                    (send global2:notify())
                )(else
                    (super:doVerb(theVerb rest param2))
                )
            )
            (case 1
                (if (proc0_2(4) and proc0_2(54))
                    (send gFpMessager:say(noun 1 22 0 0 15))
                )(else
                    (if (proc0_2(54))
                        (send gFpMessager:say(noun 1 23 0 0 15))
                    )(else
                        (if (proc0_2(4))
                            (send gFpMessager:say(noun 1 15 0 0 15))
                        )(else
                            (super:doVerb(theVerb rest param2))
                        )
                    )
                )
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance Pie of FPInvItem
    (properties
        view 81
        loop 1
        cursor 81
        message 48
        signal $0002
        noun 48
    )
)
(instance Coffee of FPInvItem
    (properties
        view 82
        loop 1
        cursor 82
        message 49
        signal $0002
        noun 49
    )
)
(instance {Cleaning Kit} of FPInvItem
    (properties
        view 83
        loop 1
        cursor 83
        message 50
        signal $0002
        noun 50
    )
)
(instance Bullets of FPInvItem
    (properties
        view 84
        loop 1
        cursor 84
        message 51
        signal $0002
        noun 51
    )
)
(instance Clay of FPInvItem
    (properties
        view 85
        loop 1
        cursor 85
        message 52
        signal $0002
        noun 52
    )
)
(instance Medallion of FPInvItem
    (properties
        view 86
        loop 1
        cursor 86
        message 53
        signal $0002
        noun 23
    )
)
(instance {Empty Mold} of FPInvItem
    (properties
        view 53
        loop 1
        cursor 53
        message 69
        signal $0002
        noun 68
    )
)
(instance {Wax Filled Mold} of FPInvItem
    (properties
        view 39
        loop 1
        cursor 39
        message 68
        signal $0002
        noun 54
    )
)
(instance {Silver Filled Mold} of FPInvItem
    (properties
        view 87
        loop 1
        cursor 87
        message 67
        signal $0002
        noun 53
    )

    (method (doVerb theVerb param2)
        (switch (theVerb)
            (case 4
                (send gNarrator:
                    name(name)
                    showTitle(1)
                )
                (send ((send gInv:at(53))):owner(gEgo))
                (send gEgo:put(53))
                (send gInv:curIcon(0))
                (if ((((send gEgo:has(38)) and (send gEgo:has(10))) and (send gEgo:has(2))) and (send gEgo:has(44)))
                    proc0_3(58)
                )
                (send gEgo:get(-1 52))
                (send ((send gInv:at(52))):owner(gEgo))
                (send gFpMessager:say(noun theVerb 0 0 self 15))
                (send gGame:points(20))
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance {Wax Ear} of FPInvItem
    (properties
        view 38
        loop 1
        cursor 38
        message 70
        signal $0002
        noun 69
    )

    (method (doVerb theVerb param2)
        (switch (theVerb)
            (case 52
                (send gNarrator:
                    name(name)
                    showTitle(1)
                )
                (send gEgo:get(-1 60))
                (send ((send gInv:at(59))):owner(gEgo))
                (send gEgo:put(59))
                (send ((send gInv:at(8))):owner(gEgo))
                (send gEgo:put(8))
                (send gInv:curIcon(0))
                (send ((send gInv:at(60))):owner(gEgo))
                (send gFpMessager:say(noun theVerb 0 0 self 15))
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance {Silver Ear} of FPInvItem
    (properties
        view 88
        loop 1
        cursor 88
        message 55
        signal $0002
        noun 61
    )
)
(instance Clothes of FPInvItem
    (properties
        view 89
        loop 1
        cursor 89
        message 56
        signal $0002
        noun 55
    )
)
(instance {Claim Check} of FPInvItem
    (properties
        view 90
        loop 1
        cursor 90
        message 57
        signal $0002
        noun 56
    )
)
(instance Boots of FPInvItem
    (properties
        view 91
        loop 1
        cursor 91
        message 58
        signal $0002
        noun 57
    )
)
(instance Neckerchief of FPInvItem
    (properties
        view 92
        loop 1
        cursor 92
        message 59
        signal $0002
        noun 58
    )

    (method (doVerb theVerb param2)
        (switch (theVerb)
            (case 4
                (send gNarrator:
                    name(name)
                    showTitle(1)
                )
                ++local1
                (send gFpMessager:say(58 4 24 0 self 15))
            )
            (default 
                (super:doVerb(theVerb rest param2))
            )
        )
    )

)
(instance {Sharp Ear} of FPInvItem
    (properties
        view 93
        loop 1
        cursor 93
        message 60
        signal $0002
        noun 59
    )
)
(instance Sword of FPInvItem
    (properties
        view 94
        loop 1
        cursor 94
        message 61
        signal $0002
        noun 60
    )
)
(instance {Paper Sack} of FPInvItem
    (properties
        view 96
        loop 1
        cursor 96
        message 65
        signal $0002
        noun 65
    )
)
(instance {Filled Sack} of FPInvItem
    (properties
        view 98
        loop 1
        cursor 98
        message 64
        signal $0002
        noun 64
    )
)
(instance Elixir of FPInvItem
    (properties
        view 97
        loop 1
        cursor 97
        message 5
        signal $0002
        noun 66
    )
)
(instance {Horse Plop} of FPInvItem
    (properties
        view 95
        loop 1
        cursor 95
        message 66
        signal $0002
        noun 67
    )
)
