(include "sci.sh")
(use "Main")
(use "Class_255_0")
(use "SQRoom")
(use "Class_950_0")
(use "n958")
(use "Sound")
(use "Cycle")
(use "User")
(use "PicView")
(use "Obj")
(script 387)


(local
    local0
    local1
    local2 = 3
    local3
    local4
    local5
    local6
    local7
    local8[7] = (41 42 43 44 45 46 47 )
    local15 = 3
    local16 = 1
    local17
    theGPseudoMouse

)
(procedure (localproc_000e param1)
    (if (((((((== (lettuce:followWho) 1) or (== (pickle:followWho) 1)) or (== (bun:followWho) 1)) or (== (mayo:followWho) 1)) or (== (must:followWho) 1)) or (== (cats:followWho) 1)) or (send param1:followWho))
        0
    )(else
        (send param1:follow(1))
    )
)


(procedure (localproc_02f0 param1 param2 param3 param4)
    (var temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8, temp9, temp10, temp11[5])
    = temp2 proc0_18(global158 global155)
    = temp8 14
    = temp4 proc0_18(global130 global130)
    = temp7 proc0_18(global161 global130)
    = temp6 proc0_18(global157 global156)
    = temp5 proc0_18(global156 global156)
    = temp1 3
    = temp9 2
    = temp3 3
    = temp0 GetPort()
    SetPort(0)
    Graph(11 param1 param2 + param3 1 + param4 1 temp3 temp2 temp8)
    = param1 (- param1 temp1)
    = param2 (- param2 temp1)
    = param4 (+ param4 temp1)
    = param3 (+ param3 temp1)
    Graph(11 param1 param2 + param1 temp1 param4 temp3 temp4 temp8)
    Graph(11 - param3 temp1 param2 param3 param4 temp3 temp5 temp8)
    = temp10 0
    (while (< temp10 temp1)
        Graph(4 + param1 temp10 + param2 temp10 - param3 (+ temp10 1) + param2 temp10 temp7 temp8)
        Graph(4 + param1 temp10 - param4 (+ temp10 1) - param3 (+ temp10 1) - param4 (+ temp10 1) temp6 temp8)
        ++temp10
    )
    Graph(11 + param1 temp9 param4 + param3 temp9 + param4 temp9 temp3 0 temp8)
    Graph(11 param3 + param2 temp9 + param3 temp9 param4 temp3 0 temp8)
    Graph(12 param1 param2 + param3 2 + param4 2 1)
    SetPort(temp0)
)


(instance public rm387 of SQRoom
    (properties
        picture 387
    )

    (method (init)
        (self:setRegions(700))
        = theGPseudoMouse gPseudoMouse
        = gPseudoMouse 0
        proc958_0(132 41 101 122)
        (User:
            canControl(1)
            canInput(1)
        )
        (send gIconBar:enable(0 1 2 3 4 5 6 7))
        (send global1:setCursor((send ((send gIconBar:curIcon)):cursor)))
        (send gIconBar:disable(0))
        (super:init())
        (send gEgo:setCycle(0))
        (burger:init())
        (lettuce:
            init()
            rePosn()
            condoList(cList)
        )
        (pickle:
            init()
            rePosn()
            condoList(cList)
        )
        (bun:
            init()
            rePosn()
            condoList(cList)
        )
        (mayo:
            init()
            rePosn()
            mySound(squirtSound)
            condoList(cList)
        )
        (cats:
            init()
            rePosn()
            mySound(squirtSound)
            condoList(cList)
        )
        (must:
            init()
            rePosn()
            mySound(squirtSound)
            condoList(cList)
        )
        (keyHandler:
            add(lettuceBay pickleBay mayoBay mustBay catsBay bunBay)
            target(burger)
            init()
        )
        (door:init())
        (rejectSign:
            init()
            stopUpd()
        )
        (if (> (send global1:detailLevel) 1)
            (conveyor:
                init()
                setCycle(Fwd)
            )
        )
        (grabber:
            init()
            stopUpd()
        )
        (lettuceBay:init())
        (pickleBay:init())
        (bunBay:init())
        (belt:init())
        (topCounter:init())
        (bottomCounter:init())
        (upperPipes:init())
        (redTube:init())
        (lowerPipes:init())
        (hood:init())
        (readSignFeat:init())
        (self:setScript(instructScript))
    )


    (method (doit)
        (if (GameIsRestarting())
            (restoreCode:doit())
        )
        (super:doit())
    )


    (method (dispose)
        (if (gTheNewDialog)
            (send gTheNewDialog:dispose())
        )
        (cList:
            delete()
            dispose()
        )
        (keyHandler:
            delete()
            dispose()
        )
        = gPseudoMouse theGPseudoMouse
        (super:dispose())
    )

)
(instance restoreCode of Code
    (properties)

    (method (doit)
        (var temp0[15], temp15[5])
        localproc_02f0(170 7 184 87)
        = local5 proc0_12("Pay:" 67 9 173 28 global132 29 global129 30 0)
        = local4 proc0_12(Format(@temp15 387 0 local3) 67 43 173 28 global137 29 global129 30 0)
        localproc_02f0(170 222 184 312)
        = local6 proc0_12("'R' to Read Sign" 67 225 173 28 global135 29 global129 30 0)
    )

)
(class Condiment of View
    (properties
        x 0
        y 0
        z 0
        heading 0
        noun 0
        nsTop 0
        nsLeft 0
        nsBottom 0
        nsRight 0
        description 0
        sightAngle 26505
        actions 26505
        onMeCheck 26505
        lookStr 0
        yStep 2
        view 0
        loop 0
        cel 0
        priority 0
        underBits 0
        signal 257
        lsTop 0
        lsLeft 0
        lsBottom 0
        lsRight 0
        brTop 0
        brLeft 0
        brBottom 0
        brRight 0
        palette 0
        myX 0
        myY 0
        myPri 0
        mySound 0
        staticLoop 0
        staticCel 0
        cursorLoop 0
        cursorCel 0
        targetLoop 0
        targetCel 0
        followWho 0
        condoList 0
    )

    (method (doit)
        (var UserCurEvent)
        (if (not followWho)
            0
        )(else
            (if (IsObject(followWho))
                (self:
                    x((send followWho:x))
                    y(- (send followWho:y) 14)
                )
            )(else
                (if (<> global19 69)
                    (self:rePosn())
                )(else
                    (if (not & (send ((= UserCurEvent (User:curEvent))):type) $0007)
                        GlobalToLocal(UserCurEvent)
                        (self:
                            x((send UserCurEvent:x))
                            y(+ (send UserCurEvent:y) 10)
                        )
                    )
                )
            )
        )
        (super:doit())
    )


    (method (doVerb param1 param2 param3)
        (switch (param1)
            (case 2
                localproc_000e(self)
            )
            (default 
                (super:doVerb(param1 rest param3))
            )
        )
    )


    (method (rePosn)
        (self:
            x(myX)
            y(myY)
            loop(staticLoop)
            cel(staticCel)
            setPri(myPri)
            followWho(0)
        )
    )


    (method (follow theFollowWho)
        = followWho theFollowWho
        (if (IsObject(followWho))
            (send condoList:addToFront(self))
            (if (mySound)
                (send mySound:play())
            )
            (self:
                setPri(+ (send condoList:size) 1)
                followWho(theFollowWho)
                loop(targetLoop)
                cel(targetCel)
            )
            (keyHandler:setTarget(0))
        )(else
            (self:
                loop(cursorLoop)
                cel(cursorCel)
                setPri(15)
            )
            = local1 (send global1:setCursor(69 1))
        )
    )

)
(class BurgerKeys of Set
    (properties
        elements 0
        size 0
        curFeat 0
        curLevel 0
        target 0
    )

    (method (init)
        (send gSq4DirectionHandler:addToFront(self))
        (self:restart())
    )


    (method (dispose param1)
        (send gSq4DirectionHandler:delete(self))
        (super:dispose(rest param1))
    )


    (method (handleEvent pEvent)
        (var pEventMessage)
        = pEventMessage (send pEvent:message)
        (send pEvent:claimed(1))
        (if (not (& (send pEvent:type) $0040) or not (User:canInput()))
            (send pEvent:claimed(0))
        )(else
            (if (proc999_5(pEventMessage 1 5 18432 20480))
                (self:changeLevel())
            )(else
                (if (proc999_5(pEventMessage 3 19712))
                    (self:advance())
                )(else
                    (if (proc999_5(pEventMessage 7 19200))
                        (self:retreat())
                    )
                )
            )
        )
    )


    (method (advance)
        (var temp0)
        (asm
            pushi   67
            pushi   #superClass
            pushi   1
            pushi   #indexOf
            pushi   1
            pTos    curFeat
            self    6
            add     
            push    
            self    6
            sat     temp0
            pushi   1
            push    
            callk   IsObject, 2
            not     
            bnt     code_07f2
            pushi   1
            pushi   #first
            pushi   0
            self    4
            push    
            callk   NodeValue, 2
            sat     temp0
code_07f2:  lat     temp0
            aTop    curFeat
            pushi   #changeLevel
            pushi   1
            pushi   0
            self    6
            ret     
        )
    )


    (method (retreat)
        (var temp0)
        (asm
            pushi   67
            pushi   #superClass
            pushi   #indexOf
            pushi   1
            pTos    curFeat
            self    6
            push    
            ldi     1
            sub     
            push    
            self    6
            sat     temp0
            pushi   1
            push    
            callk   IsObject, 2
            not     
            bnt     code_0828
            pushi   1
            pushi   #last
            pushi   0
            self    4
            push    
            callk   NodeValue, 2
            sat     temp0
code_0828:  lat     temp0
            aTop    curFeat
            pushi   #changeLevel
            pushi   1
            pushi   0
            self    6
            ret     
        )
    )


    (method (changeLevel param1)
        (if (= curLevel 
            (if (paramTotal)
                param1
            )(else
                not curLevel
            )
)
            = curLevel 1
            (self:setTarget(followTarget))
        )(else
            = curLevel 0
            (self:setTarget(0))
            (send global1:setCursor(global19 1 (send curFeat:x) (send curFeat:y)))
        )
    )


    (method (setTarget param1)
        (if (not paramTotal)
            = param1 0
        )
        (send target:code(param1))
        (if (param1)
            (send param1:doit())
        )
    )


    (method (restart)
        = curFeat NodeValue((self:first()))
        (self:changeLevel(0))
    )

)
(instance followTarget of Code
    (properties)

    (method (doit)
        (var temp0)
        (if ((User:canInput()))
            = temp0 (send ((keyHandler:target)):x)
            (if (> (send ((keyHandler:target)):xStep) 5)
                = temp0 (+ temp0 5)
            )
            (send global1:setCursor(global19 1 temp0 (- (send ((keyHandler:target)):y) 14)))
        )(else
            (keyHandler:restart())
        )
    )

)
(instance instructScript of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                = cycles 1
            )
            (case 1
                (restoreCode:doit())
                Print("This is so easy, a human could probably do it.  Burger comes out of the oven.  Drop on yer lettuce, yer pickle, squeeze on yer mayo, squirt on yer mustard, on goes yer ketchup, top it off with yer sesame-seed bun.  You make 'em MY way, and if you mess up enough times, you're outta here.  Got it?")
                Print("If ya need to know how to run the assembly line, read the sign.  Just click it with the mouse or press R.")
                = cycles 1
            )
            (case 2
                (burgerMusic:
                    number(local8[local7])
                    changeState()
                    play()
                )
                (send client:setScript(burgerScript))
                (send gIconBar:curIcon((send gIconBar:at(2))))
                (send global1:setCursor((send ((send gIconBar:curIcon)):cursor)))
            )
        )
    )

)
(instance readSignCode of Code
    (properties)

    (method (doit)
        Print("Instructions for the MasterBurger 2000\nThis notice must be posted wherever the MasterBurger 2000 is in use.\n\nThe hand cursor must be active in order to pick up and install condiments. ")
        Print("Keyboard:\nUp & down arrows switch between condiments and burger.\nWhen on condiment level, left & right arrows move cursor between the condiments.\nWhen on burger level, cursor follows burger.\n\nMouse:\nClick on condiment to pick it up.  Click it again on top of burger to install it.\nIf you're carrying a condiment and you cycle to another cursor, the condiment drops back into its bay. ")
    )

)
(instance burgerScript of Script
    (properties)

    (method (changeState newState)
        (var gIconBarCurIcon)
        (switch (= state newState)
            (case 0
                = cycles 1
            )
            (case 1
                (if (not HaveMouse())
                    (send global1:setCursor(global19 1 (send ((keyHandler:curFeat)):x) (send ((keyHandler:curFeat)):y)))
                )
                = cycles 1
            )
            (case 2
                (grabSound:
                    number(160)
                    play()
                )
                (door:setCycle(End self))
            )
            (case 3
                (door:cel(0))
                (burger:
                    show()
                    setLoop(0)
                    cel(0)
                    posn(14 109)
                    setMotion(MoveTo 266 109 self)
                )
            )
            (case 4
                (User:
                    canControl(0)
                    canInput(0)
                )
                (send gEgo:setMotion(0))
                = gIconBarCurIcon (send gIconBar:curIcon)
                (send gIconBar:disable(0 1 2 3 4 5 6 7))
                (send gIconBar:curIcon(gIconBarCurIcon))
                (send global1:setCursor(global21 1))
                (keyHandler:restart())
                (burger:hide())
                = register 
                    (if (((((== (cList:indexOf(bun)) 0) and (<> (cList:indexOf(lettuce)) -1)) and (<> (cList:indexOf(pickle)) -1)) and (<> (cList:indexOf(mayo)) -1)) and (<> (cList:indexOf(must)) -1))
                        (<> (cList:indexOf(cats)) -1)
                    )(else
                        0
                    )
                (lettuce:rePosn())
                (pickle:rePosn())
                (bun:rePosn())
                (mayo:rePosn())
                (must:rePosn())
                (cats:rePosn())
                (cList:release())
                (send global1:setCursor(local1 1))
                (grabber:
                    setLoop(2)
                    cel(0)
                    setCycle(End self)
                )
                (grabSound:
                    number(136)
                    play()
                )
                (grabSound2:play())
            )
            (case 5
                (grabSound:
                    number(138)
                    play()
                )
                (grabSound2:stop())
                (burger:
                    setLoop(5)
                    cel(0)
                    posn(266 27)
                    show()
                )
                (grabber:
                    setLoop(3)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 6
                (grabber:stopUpd())
                (if (register)
                    (self:setScript(goodBurgerScript self))
                )(else
                    (self:setScript(rejectScript self))
                )
            )
            (case 7
                (if ((== local0 10) or (== local17 5))
                    (send client:setScript(yurHistoryScript))
                )(else
                    (if (not --local2)
                        = local2 ++local15
                        (if ((burger:moveSpeed))
                            (burger:moveSpeed((- (burger:moveSpeed) 1)))
                        )(else
                            (burger:xStep((+ (burger:xStep) 1)))
                        )
                        (if (< ++local7 7)
                            (burgerMusic:
                                number(local8[local7])
                                changeState()
                                play()
                            )
                            UnLoad(132 local8[- local7 1])
                        )
                        = cycles 1
                    )(else
                        = cycles 1
                    )
                )
            )
            (case 8
                (User:
                    canControl(1)
                    canInput(1)
                )
                (send gIconBar:enable(0 1 2 3 4 5 6 7))
                (send global1:setCursor((send ((send gIconBar:curIcon)):cursor)))
                (send gIconBar:disable(0))
                (self:
                    start(2)
                    init()
                )
            )
        )
    )

)
(instance goodBurgerScript of Script
    (properties)

    (method (changeState newState)
        (var temp0[5])
        (switch (= state newState)
            (case 0
                proc0_12(local4)
                proc0_12(local5)
                proc0_12(local6)
                = local3 (+ local3 local16)
                (restoreCode:doit())
                (send gEgo:get(0))
                = global159 (+ global159 local16)
                = global172 (+ global172 local16)
                = register (burger:moveSpeed)
                = local17 0
                (burger:
                    moveSpeed(0)
                    setMotion(MoveTo (burger:x) 65526 self)
                )
            )
            (case 1
                (burger:moveSpeed(register))
                (self:dispose())
            )
        )
    )

)
(instance rejectScript of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                = seconds 2
            )
            (case 1
                (rejectSign:
                    startUpd()
                    setScript(signScript)
                )
                = seconds 4
            )
            (case 2
                (burger:setCycle(End))
                (grabSound:
                    number(139)
                    play()
                )
                = seconds 5
            )
            (case 3
                (rejectSign:
                    setScript(0)
                    setCycle(0)
                    cel(0)
                    stopUpd()
                )
                = seconds 2
            )
            (case 4
                ++local0
                ++local17
                (self:dispose())
            )
        )
    )

)
(instance signScript of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send client:cel(2))
                (rejectSound:play())
                = cycles 5
            )
            (case 1
                (send client:cel(0))
                = cycles 5
            )
            (case 2
                (self:init())
            )
        )
    )

)
(instance yurHistoryScript of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send global2:newRoom(385))
            )
        )
    )

)
(instance burgerMusic of Sound
    (properties
        priority 1
        loop -1
    )
)
(instance rejectSound of Sound
    (properties
        number 101
        priority 2
    )
)
(instance squirtSound of Sound
    (properties
        number 122
        priority 3
    )
)
(instance grabSound of Sound
    (properties
        number 136
        priority 3
    )
)
(instance grabSound2 of Sound
    (properties
        number 137
        priority 3
    )
)
(instance readSignFeat of Feature
    (properties
        nsTop 168
        nsLeft 230
        nsBottom 187
        nsRight 315
        description "Button to read instructions."
        lookStr "Press me to see the instructions for the MasterBurger 2000."
    )

    (method (init)
        (send gSq4KeyDownHandler:add(self))
        (super:init())
    )


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


    (method (handleEvent pEvent)
        (super:handleEvent(pEvent))
        (if ((not (send pEvent:claimed) and (& (send pEvent:type) $0004)) and proc999_5((send pEvent:message) 114 82))
            (readSignCode:doit())
        )
    )


    (method (doVerb param1)
        (switch (param1)
            (case 1
                Print(description)
            )
            (default 
                (readSignCode:doit())
            )
        )
    )

)
(instance cList of List
    (properties)
)
(instance keyHandler of BurgerKeys
    (properties)
)
(instance lettuceBay of Feature
    (properties
        x 70
        y 131
        nsTop 118
        nsLeft 55
        nsBottom 146
        nsRight 85
        description "lettuce bay"
        lookStr "Lettuce."
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 10
                Print("Uhmm! Lettuce. Real old lettuce.")
            )
            (case 11
                Print("Smells like lettuce.")
            )
            (default 
                (super:doVerb(param1 param2))
            )
        )
    )

)
(instance pickleBay of Feature
    (properties
        x 111
        y 131
        nsTop 118
        nsLeft 95
        nsBottom 146
        nsRight 126
        description "pickle bay"
        lookStr "Pickles"
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 10
                Print("Tastes like pickelene slices")
            )
            (case 11
                Print("Smells like pickles.")
            )
            (default 
                (super:doVerb(param1 param2))
            )
        )
    )

)
(instance mayoBay of Feature
    (properties
        x 153
        y 129
    )
)
(instance mustBay of Feature
    (properties
        x 185
        y 129
    )
)
(instance catsBay of Feature
    (properties
        x 218
        y 129
    )
)
(instance bunBay of Feature
    (properties
        x 258
        y 126
        nsTop 118
        nsLeft 245
        nsBottom 146
        nsRight 275
        description "bun bay"
        lookStr "Buns."
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 10
                Print("They almost taste fresh.")
            )
            (case 11
                Print("Must be PermaBuns. They have no smell.")
            )
            (default 
                (super:doVerb(param1 param2))
            )
        )
    )

)
(instance mayo of Condiment
    (properties
        description "mayonnaise"
        lookStr "Squeeze me for a plop of mayonnaise."
        view 387
        signal 24592
        myX 153
        myY 129
        myPri 10
        staticLoop 8
        cursorLoop 9
        targetCel 3
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 10
                Print("It tastes white.")
            )
            (case 11
                Print("It has an oily smell.")
            )
            (default 
                (super:doVerb(param1 param2))
            )
        )
    )

)
(instance must of Condiment
    (properties
        description "mustard"
        lookStr "Squeeze me for a plop of mustard."
        view 387
        signal 24592
        myX 185
        myY 129
        myPri 10
        staticLoop 8
        staticCel 1
        cursorLoop 9
        cursorCel 1
        targetCel 4
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 10
                Print("Tastes a little spicey.")
            )
            (case 11
                Print("Smells a little spicey.")
            )
            (default 
                (super:doVerb(param1 param2))
            )
        )
    )

)
(instance cats of Condiment
    (properties
        description "catsup"
        lookStr "Squeeze me for a plop of catsup."
        view 387
        signal 24592
        myX 218
        myY 129
        myPri 10
        staticLoop 8
        staticCel 2
        cursorLoop 9
        cursorCel 2
        targetCel 5
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 10
                Print("It tastes wet. Otherwise, it's tasteless.")
            )
            (case 11
                Print("It has no smell.")
            )
            (default 
                (super:doVerb(param1 param2))
            )
        )
    )

)
(instance lettuce of Condiment
    (properties
        description "lettuce"
        lookStr "A green leafy vegetable."
        view 387
        signal 24592
        myX 71
        myY 131
        myPri 10
        staticCel 1
        cursorCel 1
        targetCel 1
    )

    (method (doVerb param1 param2 param3)
        (switch (param1)
            (case 10
                Print("Uhmm! Lettuce. Real old lettuce.")
            )
            (case 11
                Print("Smells like lettuce.")
            )
            (default 
                (super:doVerb(param1 rest param3))
            )
        )
    )

)
(instance pickle of Condiment
    (properties
        description "pickle"
        lookStr "Pickled cucumber slices."
        view 387
        signal 24592
        myX 111
        myY 131
        myPri 10
        staticCel 2
        cursorCel 2
        targetCel 2
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 10
                Print("Tastes like pickle slices")
            )
            (case 11
                Print("Smells like pickles.")
            )
            (default 
                (super:doVerb(param1 param2))
            )
        )
    )

)
(instance bun of Condiment
    (properties
        description "bun"
        lookStr "The top half of a hamburger bun."
        view 387
        signal 24592
        myX 259
        myY 127
        myPri 10
        staticCel 6
        cursorCel 6
        targetCel 6
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 10
                Print("They almost taste fresh.")
            )
            (case 11
                Print("Must be PermaBuns. They have no smell.")
            )
            (default 
                (super:doVerb(param1 param2))
            )
        )
    )

)
(instance burger of Actor
    (properties
        x 14
        y 109
        description "burger"
        lookStr "Beef at it's finest(?)."
        view 387
        priority 1
        signal 26640
        moveSpeed 2
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 2
                (if (== (lettuce:followWho) 1)
                    (lettuce:follow(self))
                    (send global1:setCursor(local1 1))
                )(else
                    (if (== (pickle:followWho) 1)
                        (pickle:follow(self))
                        (send global1:setCursor(local1 1))
                    )(else
                        (if (== (bun:followWho) 1)
                            (bun:follow(self))
                            (send global1:setCursor(local1 1))
                        )(else
                            (if (== (mayo:followWho) 1)
                                (mayo:follow(self))
                                (send global1:setCursor(local1 1))
                            )(else
                                (if (== (must:followWho) 1)
                                    (must:follow(self))
                                    (send global1:setCursor(local1 1))
                                )(else
                                    (if (== (cats:followWho) 1)
                                        (cats:follow(self))
                                        (send global1:setCursor(local1 1))
                                    )
                                )
                            )
                        )
                    )
                )
            )
            (case 10
                Print("Hey! This belongs to someone else!")
            )
            (case 11
                Print("There's that Monolith Burgers Secret Smell(tm).")
            )
            (default 
                (super:doVerb(param1 rest param2))
            )
        )
    )

)
(instance door of Prop
    (properties
        x 60
        y 115
        view 387
        loop 7
        priority 1
        signal 16
    )
)
(instance grabber of Prop
    (properties
        x 255
        y 46
        description "grabber"
        lookStr "BurgerMation Grabitron unit."
        view 387
        loop 3
        cel 6
        priority 8
        signal 16400
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 10
                Print("That's a good way to put your tongue out, buddy.")
            )
            (case 11
                Print("Smells greasy.")
            )
            (default 
                (super:doVerb(param1 param2))
            )
        )
    )

)
(instance conveyor of Prop
    (properties
        x 287
        y 108
        view 387
        loop 6
        priority 1
        signal 16
    )
)
(instance rejectSign of Prop
    (properties
        x 186
        y 33
        description "reject sign"
        sightAngle 180
        lookStr "If this is flashing, you've just blown it."
        view 387
        loop 4
        priority 1
        signal 16
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 10
                Print("It tastes greasy.")
            )
            (case 11
                Print("It smells greasy.")
            )
            (default 
                (super:doVerb(param1 param2))
            )
        )
    )

)
(instance belt of Feature
    (properties
        x 165
        y 91
        nsTop 69
        nsLeft 32
        nsBottom 113
        nsRight 298
        description "conveyor belt"
        lookStr "This conveys the burgers from the nucleo-carbonic cooking chamber to you for construction and then on to the box grabber for transport out to the customer, or rejection if you've blown it."
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 10
                Print("Essence of Monolith Burger now coats your tongue - forever!")
            )
            (case 11
                Print("It smells like the essence of Monolith Burger.")
            )
            (default 
                (super:doVerb(param1 param2))
            )
        )
    )

)
(instance topCounter of Feature
    (properties
        x 213
        y 22
        nsLeft 107
        nsBottom 44
        nsRight 319
        description "top counter"
        lookStr "It's more unimportant counter space."
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 10
                Print("You must be bored. Maybe we should turn up the speed.")
            )
            (case 11
                Print("You must be bored. Maybe we should turn up the speed.")
            )
            (default 
                (super:doVerb(param1 param2))
            )
        )
    )

)
(instance bottomCounter of Feature
    (properties
        x 163
        y 10
        nsTop 114
        nsLeft 42
        nsBottom 159
        nsRight 285
        description "bottom counter"
        lookStr "It's more unimportant counter space."
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 10
                Print("You must be bored. Maybe we should turn up the speed.")
            )
            (case 11
                Print("You must be bored. Maybe we should turn up the speed.")
            )
            (default 
                (super:doVerb(param1 param2))
            )
        )
    )

)
(instance upperPipes of Feature
    (properties
        x 18
        y 53
        nsTop 38
        nsBottom 69
        nsRight 37
        description "upper pipes"
        lookStr "More pipes"
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 10
                Print("Don't mess with it.")
            )
            (case 11
                Print("Smells like a pipe!")
            )
            (default 
                (super:doVerb(param1 param2))
            )
        )
    )

)
(instance redTube of Feature
    (properties
        x 5
        y 91
        nsTop 69
        nsBottom 114
        nsRight 11
        description "red tube"
        lookStr "It's red tubing. You have no idea what it does."
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 10
                Print("Don't mess with it.")
            )
            (case 11
                Print("Smells like a pipe!")
            )
            (default 
                (super:doVerb(param1 param2))
            )
        )
    )

)
(instance lowerPipes of Feature
    (properties
        x 18
        y 132
        nsTop 115
        nsBottom 149
        nsRight 36
        description "lower pipes"
        lookStr "More pipes."
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 10
                Print("Don't mess with it.")
            )
            (case 11
                Print("Smells like a pipe!")
            )
            (default 
                (super:doVerb(param1 param2))
            )
        )
    )

)
(instance hood of Feature
    (properties
        x 21
        y 92
        nsTop 70
        nsLeft 11
        nsBottom 114
        nsRight 31
        description "hood"
        lookStr "This sucks most of the noxious gases from the room."
    )

    (method (doVerb param1 param2)
        (switch (param1)
            (case 10
                Print("It definitely hasn't been cleaned in awhile. Maybe later when you get time you could give it a buff.")
            )
            (case 11
                Print("It smells likes escaping air.")
            )
            (default 
                (super:doVerb(param1 param2))
            )
        )
    )

)
