(version 2)
(include "sci.sh")
(exports
    0 kq1
    1 proc0_1
    2 proc0_2
    3 proc0_3
    4 proc0_4
    6 proc0_6
    7 proc0_7
    8 proc0_8
    9 proc0_9
    10 proc0_10
    11 proc0_11
    12 proc0_12
    13 proc0_13
    14 proc0_14
    15 proc0_15
    16 proc0_16
    17 proc0_17
    18 proc0_18
    19 proc0_19
    20 proc0_20
    21 gameSound
    22 proc0_22
    23 backSound
    24 proc0_24
    25 proc0_25
    26 proc0_26
    27 proc0_27
)
(use "Class_255_0")
(use "myWindow")
(use "TurnLooper")
(use "Feature")
(use "n958")
(use "StopWalk")
(use "Follow")
(use "Grooper")
(use "Sound")
(use "SysWindow")
(use "Cycle")
(use "Class_993_0")
(use "Game")
(use "InvI")
(use "User")
(use "MenuBar")
(use "PicView")
(use "Obj")
(script 0)


(local
    gEgo
    gGame
    global2
    gNewSpeed =     6
    global4
    gCast
    gRegions
    gTimers
    gSounds
    gInv
    gAddToPics
    gNumber
    gGNumber
    gNewRoomNumber
    global14
    global15
    global16
    global17 =     7
    global18
    gCursorNumber
    gGCursorNumber =     999
    global21 =     997
    global22 =     1
    global23 =     4
    gPEvent
    gTheNewDialog
    global26 =     1
    global27 =     12
    global28
    global29
    global30
    global31
    global32
    global33
    global34
    global35
    global36
    global37
    global38
    global39
    global40
    global41
    global42
    global43
    global44
    global45
    global46
    global47
    global48
    global49
    global50 =     10
    gPicAngle
    gFeatures
    gSFeatures
    global54
    global55
    global56
    gPicNumber =     -1
    global58
    gMyWindow
    global60 =     3
    global61
    global62
    global63
    global64
    global65
    global66
    global67
    global68
    global69
    global70
    global71
    global72
    global73
    global74
    global75
    global76
    global77
    global78
    global79
    global80
    global81
    global82
    global83
    global84
    global85
    global86
    global87
    global88
    global89
    global90
    global91
    global92
    global93
    global94
    global95
    global96
    global97
    global98
    global99
    global100
    global101
    global102
    gTLHandsOff
    global104
    global105
    global106
    global107
    global108
    global109
    global110
    global111
    global112
    global113
    global114
    global115
    global116
    global117
    global118
    gGNumber_2
    gGGoatX
    gGGoatY
    gGGoatLoop
    global123
    global124
    global125 =     801
    gMenace
    global127
    gGoat
    gGNumber_3 =     11
    global130
    gGNumber_4
    gGiantX =     -1
    gGiantY =     -1
    global134 =     2400
    global135
    global136
    gGEgoIllegalBits
    global138
    global139
    global140
    global141
    global142
    global143
    global144
    global145
    global146
    global147
    global148
    global149
    global150
    global151
    global152
    global153
    global154
    global155
    global156
    global157
    global158
    global159
    global160
    global161
    global162
    global163
    global164
    global165
    global166
    global167
    global168
    global169
    global170
    global171
    global172
    global173
    global174
    global175
    global176
    global177
    global178
    global179
    global180
    global181
    global182
    global183
    global184
    global185
    global186
    global187
    global188
    global189
    global190
    global191
    global192
    global193
    global194
    global195
    global196
    global197
    global198
    global199
    global200

)
(procedure public (proc0_1)
    (var temp0, temp1)
    = temp1 proc0_12(0)
    = temp0 
        (if (proc0_12(1))
            (if (temp1)
                39
            )(else
                37
            )
        )(else
            (if (temp1)
                7
            )(else
                2
            )
        )
    (send gEgo:
        view(
            (if (proc0_12(1))
                (if (temp1)
                    38
                )(else
                    36
                )
            )(else
                (if (temp1)
                    4
                )(else
                    0
                )
            )
)
        setLoop(-1)
        setPri(-1)
        setMotion(0)
        setStep(
            (if (temp1)
                2
            )(else
                3
            )
 2)
        looper(Grooper)
        illegalBits(-32768)
        cycleSpeed(0)
        moveSpeed(0)
        ignoreActors(0)
        setCycle(StopWalk temp0)
    )
    Load(rsVIEW temp0)
)


(procedure public (proc0_2)
    (User:
        canControl(0)
        canInput(0)
    )
    (send gEgo:setMotion(0))
    (send gGame:setCursor(997 1))
    (MenuBar:state(0))
    = gTLHandsOff 1
)


(procedure public (proc0_3)
    (User:
        canControl(1)
        canInput(1)
    )
    (send gGame:setCursor(999 HaveMouse()))
    (MenuBar:state(1))
    = gTLHandsOff 0
)


(procedure public (proc0_4)
    proc255_0(0 131)
)


(procedure public (proc0_6)
    proc255_0(0 132)
)


(procedure public (proc0_7)
    Animate((send gCast:elements) 0)
)


(procedure public (proc0_8 param1 param2)
    (send ((send gInv:at(param1))):owner(
        (if (== paramTotal 1)
            gNumber
        )(else
            param2
        )
))
)


(procedure public (proc0_9 param1 param2)
    (var temp0[80])
    = temp0 0
    (logFile:
        name(@global63)
        writeString(Format(@temp0 0 130 gNumber param2 param1))
        close()
    )
)


(procedure public (proc0_10 param1)
    = global150[(/ param1 16)] (| global150[(/ param1 16)] (>> $8000 (% param1 16)))
)


(procedure public (proc0_11 param1)
    = global150[(/ param1 16)] (& global150[(/ param1 16)] bnot (>> $8000 (% param1 16)))
)


(procedure public (proc0_12 param1)
    return & global150[(/ param1 16)] (>> $8000 (% param1 16))
)


(procedure public (proc0_13)
    (if (== gGNumber_2 gNumber)
        (send gGoat:
            view(166)
            setLoop(gGGoatLoop)
            setCel(- NumCels(gGoat) 1)
            posn(gGGoatX gGGoatY)
            init()
            stopUpd()
        )
    )(else
        (if ((((== gGNumber_2 (send global2:west)) and (> gGGoatX 315)) and proc999_5(gGNumber_2 1 2 83 10 11 15 16)) and proc999_5(gNumber 1 2 83 10 11 15 16))
            (send gGoat:
                view(166)
                setLoop(gGGoatLoop)
                setCel(- NumCels(gGoat) 1)
                posn(- gGGoatX 320 gGGoatY)
                init()
                stopUpd()
            )
        )(else
            (if ((((== gGNumber_2 (send global2:east)) and (< gGGoatX 5)) and proc999_5(gGNumber_2 1 2 83 10 11 15 16)) and proc999_5(gNumber 1 2 83 10 11 15 16))
                (send gGoat:
                    view(166)
                    setLoop(gGGoatLoop)
                    setCel(- NumCels(gGoat) 1)
                    posn(+ gGGoatX 320 gGGoatY)
                    init()
                    stopUpd()
                )
            )
        )
    )
)


(procedure public (proc0_14 param1 param2 param3 param4 param5)
    return 
        (if (((((== (send param1:type) 1) and (& (send param1:modifiers) $0003)) and (< param2 (send param1:x))) and (< (send param1:x) param4)) and (< param3 (send param1:y)))
            < (send param1:y) param5
        )(else
            0
        )
)


(procedure public (proc0_15 param1 param2 param3)
    (var temp0, temp1)
    = temp0 (send param1:loop)
    (if (== paramTotal 2)
        DirLoop(param1 GetAngle((send param1:x) (send param1:y) (send param2:x) (send param2:y)))
        = temp1 GetAngle((send param1:x) (send param1:y) (send param2:x) (send param2:y))
    )(else
        DirLoop(param1 GetAngle((send param1:x) (send param1:y) param2 param3))
        = temp1 GetAngle((send param1:x) (send param1:y) param2 param3)
    )
    (if (<> temp0 (send param1:loop))
        (send param1:setHeading(temp1))
        (send param1:forceUpd())
        proc0_7()
    )
    (send param1:setMotion(0))
)


(procedure public (proc0_16 param1)
    (asm
        pushi   0
        call    proc0_2, 0
        pushi   #fade
        pushi   0
        lofsa   backSound
        send    4
        pushi   #fade
        pushi   0
        lofsa   gameSound
        send    4
        pushi   1
        pushi   100
        callk   Wait, 2
        pushi   #eachElementDo
        pushi   1
        pushi   137
        lag     gSounds
        send    6
        pushi   43
        pushi   1
        pushi   2
        pushi   0
        pushi   2
        callk   Random, 4
        push    
        dup     
        ldi     0
        eq?     
        bnt     code_048d
        ldi     49
        jmp     code_049f
code_048d:dup     
        ldi     1
        eq?     
        bnt     code_0497
        ldi     28
        jmp     code_049f
code_0497:dup     
        ldi     2
        eq?     
        bnt     code_049f
        ldi     3
code_049f:toss    
        push    
        pushi   6
        pushi   1
        pushi   1
        pushi   63
        pushi   1
        pushi   15
        pushi   93
        pushi   0
        pushi   42
        pushi   0
        lofsa   backSound
        send    26
        pushi   #setCursor
        pushi   2
        lsg     gGCursorNumber
        pushi   1
        lag     gGame
        send    8
code_04c7:pushi   11
        &rest   param1
        pushi   70
        pushi   250
        pushi   81
        lofsa   "Restore"
        push    
        pushi   1
        pushi   81
        lofsa   " Restart "
        push    
        pushi   2
        pushi   81
        lofsa   " Quit "
        push    
        pushi   3
        calle   proc255_0, 22
        push    
        dup     
        ldi     1
        eq?     
        bnt     code_04ff
        pushi   #restore
        pushi   0
        lag     gGame
        send    4
        jmp     code_051c
code_04ff:dup     
        ldi     2
        eq?     
        bnt     code_0510
        pushi   #restart
        pushi   0
        lag     gGame
        send    4
        jmp     code_051c
code_0510:dup     
        ldi     3
        eq?     
        bnt     code_051c
        ldi     1
        sag     global4
        jmp     code_051f
code_051c:toss    
        jmp     code_04c7
code_051f:ret     
    )
)


(procedure public (proc0_17 param1 param2 param3)
    return 
        (if (<= param2 param3)
            param3
        )(else
            (if (>= param2 param1)
                param1
            )(else
                param2
            )
        )
)


(procedure public (proc0_18 param1 param2 param3)
    return 
        (if ((<= param3 param2) and (<= param2 param1))
            (if (> (- param1 param2) (- param2 param3))
                param3
            )(else
                param1
            )
        )(else
            param2
        )
)


(procedure public (proc0_19 param1 param2)
    (if (not proc0_12(param1))
        proc0_10(param1)
        (kq1:changeScore(param2))
    )
)


(procedure public (proc0_20 param1)
    (if (param1)
        ({ Empty Water Bucket }:
            name(" Full Water Bucket ")
            loop(1)
            description("This old wooden bucket is now filled with clear water.")
        )
        (if (not proc0_12(82))
            proc0_19(63 2)
        )
        proc0_10(9)
    )(else
        ({ Empty Water Bucket }:
            name(" Empty Water Bucket ")
            loop(0)
            description("You are holding an empty wooden bucket.")
        )
        proc0_11(9)
        (if (not proc0_12(82))
            proc0_11(63)
            (kq1:changeScore(-2))
        )
    )
)


(procedure public (proc0_22)
    (if (Random(0 1))
        proc255_0(0 133)
    )(else
        proc255_0(0 134)
    )
)


(procedure public (proc0_24 param1)
    return >= global101 
        (if (paramTotal)
            param1
        )(else
            2
        )
)


(procedure public (proc0_25 param1)
    (if (<> param1 (backSound:number))
        (if (== param1 98)
            (backSound:
                loop(1)
                priority(14)
            )
        )(else
            (backSound:loop(-1))
        )
        (backSound:
            number(param1)
            play()
        )
    )
)


(procedure public (proc0_26)
    (if (<> 98 (backSound:number))
        (backSound:fade())
    )
)


(procedure public (proc0_27)
    (switch (= global140 (- global140 1))
        (case 0
            (send ((send gInv:at(9))):owner(4))
        )
        (case 1
            ({ Pebbles }:name(" Pebble "))
        )
        (default 
            ({ Pebbles }:name(" Pebbles "))
        )
    )
)


(instance public gameSound of Sound
    (properties
        number 1
        priority 5
    )
)
(instance public backSound of Sound
    (properties
        number 1
    )
)
(instance versionx of Class_993_0
    (properties)
)
(instance public kq1 of Game
    (properties)

    (method (init)
        (var temp0[11])
        = global28 "0.000.001"
        (if (<> (versionx:open(1)) 0)
            (versionx:
                read(global28 9)
                close()
            )
        )
        = gMyWindow myWindow
        (super:init())
        = gEgo ego
        = gGoat goat
        = gMenace menace
        (backSound:
            owner(self)
            init()
        )
        (User:
            alterEgo(gEgo)
            blocks(0)
            x(-1)
            y(16)
        )
        = global17 100
        = global118 1
        = global104 Graph(grGET_COLOURS)
        (send gGame:setSpeed(5))
        = global16 158
        (MenuBar:
            init()
            hide()
        )
        (SL:
            code(statusCode)
            disable()
        )
        proc0_3()
        (StopWalk:init())
        (TurnLooper:init())
        = global22 300
        (send gInv:add({ Dagger } { Chest } { Carrot } { Key } { Note } { Magic Ring } { Four-leaf Clover } { Ceramic Bowl } { Empty Water Bucket } { Pebbles } { Leather Slingshot } { Pouch } { Sceptre } { Cheese } { Magic Mirror } { Gold Egg } { Magic Shield } { Fiddle } { Walnut } { Mushroom } { Beans }))
        (Feature:
            shiftClick(-32767)
            longRangeDist(500)
        )
        proc0_10(40)
        = global102 86
        (if (GameIsRestarting())
            (MenuBar:draw())
            (SL:enable())
            = global102 1
            (send gGame:newRoom(777))
        )(else
            (MenuBar:state(1))
            (send gGame:newRoom(777))
        )
    )


    (method (doit)
        (var temp0)
        (asm
            pushi   0
            callk   HaveMouse, 0
            sat     temp0
            pushi   #number
            pushi   0
            lofsa   backSound
            send    4
            push    
            ldi     98
            eq?     
            bnt     code_0844
            pushi   #signal
            pushi   0
            lofsa   backSound
            send    4
            push    
            ldi     65535
            eq?     
            bnt     code_0844
            pushi   1
            pushi   51
            call    proc0_12, 2
            not     
            bnt     code_0844
            pushi   1
            pushi   51
            call    proc0_10, 2
code_0844:  lag     global124
            bnt     code_0859
            -ag     global124
            not     
            bnt     code_0859
            pushi   2
            pushi   0
            pushi   0
            calle   proc255_0, 4
code_0859:  pushi   1
            pushi   1
            call    proc0_12, 2
            bnt     code_08d0
            lag     global134
            bnt     code_08d0
            -ag     global134
            not     
            bnt     code_08d0
            pushi   1
            pushi   1
            call    proc0_11, 2
            lsg     gNumber
            ldi     1
            eq?     
            bnt     code_08b3
            pushi   #has
            pushi   1
            pushi   16
            lag     gEgo
            send    6
            bnt     code_08a2
            pushi   #has
            pushi   1
            pushi   14
            lag     gEgo
            send    6
            bnt     code_08a2
            pushi   #has
            pushi   1
            pushi   1
            lag     gEgo
            send    6
code_08a2:  not     
            bnt     code_08b3
            pushi   2
            pushi   0
            pushi   1
            calle   proc255_0, 4
            jmp     code_08bf
code_08b3:  pushi   2
            pushi   0
            pushi   2
            calle   proc255_0, 4
code_08bf:  pushi   #put
            pushi   1
            pushi   5
            lag     gEgo
            send    6
            pushi   0
            call    proc0_1, 0
code_08d0:  lag     global108
            not     
            bnt     code_0915
            lag     global107
            bnt     code_08df
            ldi     0
            sat     temp0
            jmp     code_0903
code_08df:  pushi   #controls
            pushi   0
            class   User
            send    4
            push    
            ldi     0
            eq?     
            bnt     code_08f8
            ldi     1
            sat     temp0
            lag     global21
            sag     global106
            jmp     code_0903
code_08f8:  pushi   0
            callk   HaveMouse, 0
            sat     temp0
            lag     gGCursorNumber
            sag     global106
code_0903:  lsg     gCursorNumber
            lag     global106
            ne?     
            bnt     code_0915
            pushi   #setCursor
            pushi   2
            lsg     global106
            lst     temp0
            self    8
code_0915:  pushi   #doit
            pushi   0
            super   Game, 4
            ret     
        )
    )


    (method (replay)
        (MenuBar:draw())
        (SL:enable())
        SetMenu(1282 110 
            (if (DoSound(sndSET_SOUND))
                "Turn Off"
            )(else
                "Turn On"
            )
)
        (super:replay())
    )


    (method (startRoom param1)
        (asm
            pushi   37
            pushi   0
            pushi   985
            pushi   982
            pushi   972
            pushi   988
            pushi   980
            pushi   978
            pushi   977
            pushi   975
            pushi   974
            pushi   971
            pushi   970
            pushi   969
            pushi   973
            pushi   966
            pushi   965
            pushi   964
            pushi   962
            pushi   956
            pushi   976
            pushi   959
            pushi   955
            pushi   949
            pushi   991
            pushi   986
            pushi   983
            pushi   611
            pushi   600
            pushi   608
            pushi   779
            pushi   784
            pushi   782
            pushi   781
            pushi   780
            pushi   615
            pushi   898
            pushi   899
            calle   proc958_0, 74
            lag     global14
            bnt     code_09d1
            ldi     0
            sag     global14
            pushi   0
            callk   SetDebug, 0
code_09d1:  pushi   1
            pushi   1
            callk   MemoryInfo, 2
            push    
            pushi   20
            pushi   1
            pushi   0
            callk   MemoryInfo, 2
            add     
            ugt?    
            bnt     code_0a05
            lag     global118
            bnt     code_0a05
            pushi   5
            pushi   0
            pushi   3
            pushi   81
            lofsa   "Debug"
            push    
            pushi   1
            calle   proc255_0, 10
            bnt     code_0a05
            pushi   0
            callk   SetDebug, 0
code_0a05:  pushi   #startRoom
            pushi   1
            lsp     param1
            super   Game, 6
            lsg     gGNumber
            ldi     0
            eq?     
            bnt     code_0a32
            pushi   1
            pushi   40
            call    proc0_12, 2
            not     
            bnt     code_0a32
            pushi   #draw
            pushi   0
            class   MenuBar
            send    4
            pushi   #enable
            pushi   0
            class   SL
            send    4
code_0a32:  pushi   #picAngle
            pushi   1
            pushi   50
            lag     global2
            send    6
            pushi   1
            pushi   2
            call    proc0_12, 2
            bnt     code_0a63
            pushi   79
            lag     gNumber
            ge?     
            bnt     code_0a52
            pprev   
            ldi     49
            ge?     
code_0a52:  not     
            bnt     code_0a63
            pushi   #setRegions
            pushi   1
            pushi   600
            lag     global2
            send    6
            jmp     code_0ada
code_0a63:  lag     gGNumber
            bnt     code_0a6d
            pushi   0
            call    proc0_13, 0
code_0a6d:  pushi   40
            lsg     gNumber
            pushi   3
            pushi   4
            pushi   5
            pushi   6
            pushi   7
            pushi   8
            pushi   9
            pushi   12
            pushi   14
            pushi   15
            pushi   16
            pushi   17
            pushi   18
            pushi   19
            pushi   20
            pushi   23
            pushi   24
            pushi   26
            pushi   30
            pushi   31
            pushi   32
            pushi   33
            pushi   34
            pushi   36
            pushi   37
            pushi   38
            pushi   42
            pushi   45
            pushi   47
            pushi   56
            pushi   57
            pushi   59
            pushi   60
            pushi   61
            pushi   62
            pushi   70
            pushi   71
            pushi   72
            pushi   82
            calle   proc999_5, 80
            bnt     code_0ada
            lsg     global101
            ldi     1
            ge?     
            bnt     code_0ada
            pushi   #setLocales
            pushi   1
            pushi   611
            lag     global2
            send    6
code_0ada:  pushi   4
            lsg     gNumber
            pushi   24
            pushi   31
            pushi   38
            calle   proc999_5, 8
            bnt     code_0b1b
            pushi   #has
            pushi   1
            pushi   20
            lag     gEgo
            send    6
            bnt     code_0b07
            pushi   #setRegions
            pushi   1
            pushi   606
            lag     global2
            send    6
            jmp     code_0b1b
code_0b07:  lsg     gGNumber
            lag     gNumber
            eq?     
            bnt     code_0b1b
            pushi   #setRegions
            pushi   1
            pushi   607
            lag     global2
            send    6
code_0b1b:  pushi   10
            lsg     gNumber
            pushi   56
            pushi   57
            pushi   58
            pushi   59
            pushi   60
            pushi   61
            pushi   62
            pushi   72
            pushi   82
            calle   proc999_5, 20
            bnt     code_0b45
            pushi   #setRegions
            pushi   1
            pushi   610
            lag     global2
            send    6
code_0b45:  lag     global124
            bnt     code_0b55
            pushi   #setRegions
            pushi   1
            pushi   616
            lag     global2
            send    6
code_0b55:  pushi   #loop
            pushi   1
            pushi   0
            lofsa   gameSound
            send    6
            pushi   #has
            pushi   1
            pushi   14
            lag     gEgo
            send    6
            bnt     code_0bb2
            pushi   #has
            pushi   1
            pushi   1
            lag     gEgo
            send    6
            bnt     code_0bb2
            pushi   #has
            pushi   1
            pushi   16
            lag     gEgo
            send    6
            bnt     code_0bb2
            pushi   1
            pushi   51
            call    proc0_12, 2
            not     
            bnt     code_0bb2
            lsg     gNumber
            ldi     70
            lt?     
            bt      code_0ba0
            lsg     gNumber
            ldi     83
            eq?     
            bnt     code_0bb2
code_0ba0:  lsg     gNumber
            ldi     53
            ne?     
            bnt     code_0bb2
            pushi   1
            pushi   98
            call    proc0_25, 2
            jmp     code_0cb0
code_0bb2:  pushi   12
            lsg     gNumber
            pushi   50
            pushi   66
            pushi   67
            pushi   68
            pushi   69
            pushi   73
            pushi   74
            pushi   75
            pushi   76
            pushi   77
            pushi   78
            calle   proc999_5, 24
            bnt     code_0bdf
            pushi   1
            pushi   31
            call    proc0_25, 2
            jmp     code_0cb0
code_0bdf:  pushi   2
            lsg     gNumber
            pushi   63
            calle   proc999_5, 4
            bnt     code_0bf8
            pushi   1
            pushi   73
            call    proc0_25, 2
            jmp     code_0cb0
code_0bf8:  pushi   27
            lsg     gNumber
            pushi   3
            pushi   9
            pushi   10
            pushi   11
            pushi   12
            pushi   13
            pushi   15
            pushi   16
            pushi   19
            pushi   21
            pushi   22
            pushi   24
            pushi   27
            pushi   28
            pushi   29
            pushi   30
            pushi   31
            pushi   35
            pushi   36
            pushi   38
            pushi   40
            pushi   44
            pushi   45
            pushi   46
            pushi   48
            pushi   95
            calle   proc999_5, 54
            bnt     code_0c42
            pushi   1
            pushi   2
            call    proc0_25, 2
            jmp     code_0cb0
code_0c42:  pushi   9
            lsg     gNumber
            pushi   1
            pushi   2
            pushi   25
            pushi   26
            pushi   39
            pushi   41
            pushi   42
            pushi   83
            calle   proc999_5, 18
            bnt     code_0c68
            pushi   1
            pushi   52
            call    proc0_25, 2
            jmp     code_0cb0
code_0c68:  pushi   6
            lsg     gNumber
            pushi   7
            pushi   32
            pushi   33
            pushi   34
            pushi   47
            calle   proc999_5, 12
            bnt     code_0c88
            pushi   1
            pushi   12
            call    proc0_25, 2
            jmp     code_0cb0
code_0c88:  pushi   11
            lsg     gNumber
            pushi   4
            pushi   5
            pushi   6
            pushi   8
            pushi   17
            pushi   18
            pushi   20
            pushi   23
            pushi   37
            pushi   43
            calle   proc999_5, 22
            bnt     code_0cb0
            pushi   1
            pushi   68
            call    proc0_25, 2
code_0cb0:  pushi   #dispose
            pushi   0
            self    4
            ret     
        )
    )


    (method (handleEvent pEvent)
        (var temp0, temp1[3], temp4, temp5, temp6, temp7[50])
        (if ((== (send pEvent:type) 1) and (& (send pEvent:modifiers) $0003))
            (if (not (User:canInput()))
                (send pEvent:claimed(1))
            )(else
                (send gCast:eachElementDo(#handleEvent pEvent))
                (send gAddToPics:eachElementDo(#handleEvent pEvent))
                (send gFeatures:eachElementDo(#handleEvent pEvent))
            )
        )
        (if (== (send pEvent:type) 128)
            (send gAddToPics:eachElementDo(#handleEvent pEvent))
        )
        (if ((send pEvent:claimed))
            return 
        )
        (super:handleEvent(pEvent))
        (if ((== (send pEvent:type) 1) or ((== (send pEvent:type) 4) and (== (send pEvent:message) 13)))
            (if (gTheNewDialog)
                (send pEvent:claimed(0))
                (send gTheNewDialog:dispose())
            )(else
                (send pEvent:claimed(0))
            )
        )
        (switch ((send pEvent:type))
            (case 128
                (if (Said('look,look[<up][/sky]'))
                    (if (proc999_5(gNumber 70 71 gGNumber_4))
                        proc255_0(0 4)
                    )(else
                        (if (proc999_5(gNumber 49 50 51 52 53 54 55 65 66 67 68 69 73 74 75 76 77 78 79 90))
                            proc255_0(0 5)
                        )(else
                            proc255_0(0 6)
                        )
                    )
                )(else
                    (if (Said('look,look<in/mirror'))
                        (if ((send gEgo:has(14)) or (== gNumber 51))
                            proc255_0(0 7)
                        )(else
                            proc255_0(0 8)
                        )
                    )(else
                        (if (Said('/goat>'))
                            (if (Said('look,look'))
                                (if ((send gCast:contains(gGoat)))
                                    proc255_0(0 9)
                                )(else
                                    proc255_0(0 10)
                                )
                            )(else
                                (if (Said('speak,speak'))
                                    (if ((== gGNumber_2 gNumber) or (send gCast:contains(gGoat)))
                                        proc255_0(0 11)
                                    )(else
                                        proc255_0(0 10)
                                    )
                                )(else
                                    (if (Said('get,get'))
                                        (if ((== gGNumber_2 gNumber) or (send gCast:contains(gGoat)))
                                            proc255_0(0 12)
                                        )(else
                                            proc255_0(0 10)
                                        )
                                    )
                                )
                            )
                        )(else
                            (if (Said('drop/pebble/shot'))
                                proc255_0(0 13)
                            )(else
                                (if (Said('drop>'))
                                    = temp0 (send gInv:firstTrue(#saidMe))
                                    (if (temp0 and (send ((= temp0 (send gInv:firstTrue(#saidMe)))):ownedBy(gEgo)))
                                        proc255_0(0 14)
                                    )(else
                                        (send pEvent:claimed(0))
                                    )
                                )(else
                                    (if (Said('/fish>'))
                                        (if (proc999_5(gNumber 4 5 6 8 17 18 20 23 37 43))
                                            (if (Said('consume,consume'))
                                                proc255_0(0 15)
                                            )(else
                                                (if (Said('kill'))
                                                    proc255_0(0 16)
                                                )
                                            )
                                        )(else
                                            proc255_0(0 17)
                                            (send pEvent:claimed(1))
                                        )
                                    )(else
                                        (if (Said('/nut>'))
                                            (if (Said('get,get'))
                                                (if ((send gEgo:has(18)))
                                                    proc255_0(0 18)
                                                )(else
                                                    (send pEvent:claimed(0))
                                                )
                                            )(else
                                                (if (not (send gEgo:has(18)))
                                                    proc0_6()
                                                    (send pEvent:claimed(1))
                                                )(else
                                                    (if (Said('open,open'))
                                                        (if ((send global2:script))
                                                            proc0_22()
                                                        )(else
                                                            (if (proc0_12(67))
                                                                proc255_0(0 19)
                                                            )(else
                                                                proc255_0(0 20)
                                                                proc0_19(67 3)
                                                                ({ Walnut }:
                                                                    name(" Gold Walnut ")
                                                                    loop(1)
                                                                    description("When you open the walnut, you discover the nut inside is pure gold!")
                                                                )
                                                            )
                                                        )
                                                    )(else
                                                        (if (Said('consume,consume'))
                                                            (if (proc0_12(67))
                                                                proc255_0(0 21)
                                                            )(else
                                                                proc255_0(0 22)
                                                            )
                                                        )(else
                                                            (if (Said('bite'))
                                                                (if ((send gEgo:has(18)))
                                                                    proc255_0(0 23)
                                                                )(else
                                                                    proc255_0(0 24)
                                                                )
                                                            )(else
                                                                (if (Said('look,look'))
                                                                    ({ Walnut }:showSelf())
                                                                    (send pEvent:claimed(1))
                                                                )
                                                            )
                                                        )
                                                    )
                                                )
                                            )
                                        )(else
                                            (if (Said('/ring>'))
                                                (if (not (send gEgo:has(5)))
                                                    proc0_6()
                                                    (send pEvent:claimed(1))
                                                )(else
                                                    (if (Said('wear') or Said('drop<on'))
                                                        (if (proc0_12(17))
                                                            proc255_0(0 25)
                                                        )(else
                                                            (if (proc0_12(48) or proc999_5((send gEgo:view) 8 19))
                                                                proc255_0(0 26)
                                                            )(else
                                                                proc255_0(0 27)
                                                                proc0_10(17)
                                                            )
                                                        )
                                                    )(else
                                                        (if (Said('rub'))
                                                            (if (proc0_12(48) or proc999_5((send gEgo:view) 8 19))
                                                                proc255_0(0 26)
                                                            )(else
                                                                (if (proc0_12(1))
                                                                    proc255_0(0 28)
                                                                )(else
                                                                    (if (not global134)
                                                                        proc255_0(0 29)
                                                                    )(else
                                                                        (if (== (send gEgo:view) 
                                                                        (if (proc0_12(0))
                                                                            23
                                                                        )(else
                                                                            16
                                                                        )
)
                                                                            proc255_0(0 30)
                                                                        )(else
                                                                            (if (> global130 0)
                                                                                proc255_0(0 31)
                                                                            )(else
                                                                                (if (proc0_12(17))
                                                                                    proc255_0(0 32)
                                                                                    (if (proc0_12(2) and proc999_5(gNumber 25 39 41))
                                                                                        (send pEvent:claimed(1))
                                                                                        (send gGoat:setMotion(0))
                                                                                    )(else
                                                                                        (if (proc0_12(2))
                                                                                            proc255_0(0 33)
                                                                                            proc0_11(2)
                                                                                            (send gGoat:setMotion(0))
                                                                                        )
                                                                                    )
                                                                                    proc0_10(1)
                                                                                    proc0_1()
                                                                                )(else
                                                                                    proc255_0(0 34)
                                                                                )
                                                                            )
                                                                        )
                                                                    )
                                                                )
                                                            )
                                                        )(else
                                                            (if (Said('remove') or Said('get<off'))
                                                                (if (== (send gEgo:view) 
                                                                (if (proc0_12(0))
                                                                    23
                                                                )(else
                                                                    16
                                                                )
)
                                                                    proc0_22()
                                                                )(else
                                                                    (if (not proc0_12(17))
                                                                        proc255_0(0 35)
                                                                    )(else
                                                                        (if (== (send gEgo:view) 8)
                                                                            proc255_0(0 36)
                                                                        )(else
                                                                            proc255_0(0 37)
                                                                            (if ((send gCast:contains(gGoat)) and (send gEgo:has(2)))
                                                                                (send gGoat:setMotion(Follow gEgo 60))
                                                                                proc0_10(2)
                                                                            )
                                                                            proc0_11(17)
                                                                            proc0_11(1)
                                                                            (if (((((<> (send gEgo:view) 61) and (<> (send gEgo:view) 249)) and (<> (send gEgo:view) 13)) and (<> (send gEgo:view) 14)) and (<> (send gEgo:view) 6))
                                                                                proc0_1()
                                                                            )
                                                                        )
                                                                    )
                                                                )
                                                            )(else
                                                                (if (Said('get,get'))
                                                                    (if ((send gEgo:has(5)))
                                                                        proc255_0(0 18)
                                                                    )(else
                                                                        (send pEvent:claimed(0))
                                                                    )
                                                                )(else
                                                                    (if (Said('look,look'))
                                                                        ({ Magic Ring }:showSelf())
                                                                    )
                                                                )
                                                            )
                                                        )
                                                    )
                                                )
                                            )(else
                                                (if (Said('/egg>'))
                                                    (if ((send gEgo:has(15)))
                                                        (if (Said('consume,consume'))
                                                            proc255_0(0 38)
                                                        )(else
                                                            (if (Said('open,open'))
                                                                proc255_0(0 39)
                                                            )(else
                                                                (if (Said('crack'))
                                                                    proc255_0(0 40)
                                                                )(else
                                                                    (if (Said('look,look'))
                                                                        ({ Gold Egg }:showSelf())
                                                                        (send pEvent:claimed(1))
                                                                    )
                                                                )
                                                            )
                                                        )
                                                    )(else
                                                        proc0_6()
                                                        (send pEvent:claimed(1))
                                                    )
                                                )(else
                                                    (if (Said('smell,smell/soup'))
                                                        (if (not (send gEgo:has(7)) or not proc0_12(112))
                                                            proc0_6()
                                                            (send pEvent:claimed(1))
                                                        )(else
                                                            (if (proc0_12(34))
                                                                proc255_0(0 41)
                                                            )(else
                                                                proc255_0(0 42)
                                                            )
                                                        )
                                                    )(else
                                                        (if (Said('consume,consume>'))
                                                            (if (global130)
                                                                (send pEvent:claimed(1))
                                                                (switch (Random(0 2))
                                                                    (case 0
                                                                        proc255_0(0 43)
                                                                    )
                                                                    (case 1
                                                                        proc255_0(0 44)
                                                                    )
                                                                    (case 2
                                                                        proc255_0(0 45)
                                                                    )
                                                                )
                                                            )(else
                                                                (if (proc0_12(1))
                                                                    proc255_0(0 46)
                                                                    (send pEvent:claimed(1))
                                                                )(else
                                                                    (if ((send global2:script))
                                                                        proc0_22()
                                                                        (send pEvent:claimed(1))
                                                                    )(else
                                                                        (if (Said('/soup'))
                                                                            (if (not (send gEgo:has(7)) or not proc0_12(112))
                                                                                proc0_6()
                                                                                (send pEvent:claimed(1))
                                                                            )(else
                                                                                (if (proc0_12(34))
                                                                                    proc255_0(0 41)
                                                                                )(else
                                                                                    proc255_0(0 47)
                                                                                    ({ Ceramic Bowl }:
                                                                                        loop(0)
                                                                                        description("This large ceramic bowl is now empty.")
                                                                                    )
                                                                                    proc0_11(112)
                                                                                    (kq1:changeScore(-2))
                                                                                )
                                                                            )
                                                                        )(else
                                                                            (if (Said('/mushroom'))
                                                                                (if ((send gEgo:has(19)))
                                                                                    (send global2:setScript(ScriptID(779 0)))
                                                                                )(else
                                                                                    (if (proc0_12(104))
                                                                                        proc255_0(0 48)
                                                                                    )(else
                                                                                        proc0_6()
                                                                                        (send pEvent:claimed(1))
                                                                                    )
                                                                                )
                                                                            )(else
                                                                                (if (Said('/carrot'))
                                                                                    (if (proc0_12(2))
                                                                                        proc255_0(0 49)
                                                                                    )(else
                                                                                        (if (not (send gEgo:has(2)))
                                                                                            (if (proc0_12(10))
                                                                                                proc255_0(0 50)
                                                                                            )(else
                                                                                                proc0_6()
                                                                                            )
                                                                                        )(else
                                                                                            proc255_0(0 51)
                                                                                            proc0_10(10)
                                                                                            (send global2:setScript(ScriptID(781 0)))
                                                                                            proc0_11(64)
                                                                                            proc0_8(2 15)
                                                                                            (if (not proc0_12(5))
                                                                                                (send gGame:changeScore(-2))
                                                                                            )
                                                                                        )
                                                                                    )
                                                                                )(else
                                                                                    (if (Said('/bean'))
                                                                                        (if (not (send gEgo:has(20)))
                                                                                            (if (proc0_12(35))
                                                                                                proc255_0(0 52)
                                                                                            )(else
                                                                                                proc0_6()
                                                                                            )
                                                                                        )(else
                                                                                            proc255_0(0 53)
                                                                                            proc0_10(35)
                                                                                            (send global2:setScript(ScriptID(781 0)))
                                                                                            proc0_8(20 0)
                                                                                            (send gGame:changeScore(-4))
                                                                                        )
                                                                                    )(else
                                                                                        (if (Said('/cheese'))
                                                                                            (if ((send gEgo:has(13)))
                                                                                                proc255_0(0 54)
                                                                                                (send global2:setScript(ScriptID(781 0)))
                                                                                                (send gEgo:put(13))
                                                                                                (send gGame:changeScore(-2))
                                                                                            )(else
                                                                                                proc0_6()
                                                                                            )
                                                                                        )(else
                                                                                            (if (Said('/*'))
                                                                                                proc255_0(0 55)
                                                                                                (send pEvent:claimed(1))
                                                                                            )(else
                                                                                                proc255_0(0 56)
                                                                                                (send pEvent:claimed(1))
                                                                                            )
                                                                                        )
                                                                                    )
                                                                                )
                                                                            )
                                                                        )
                                                                    )
                                                                )
                                                            )
                                                        )(else
                                                            (if (not proc999_5(gNumber 63 80 27 22) and Said('/bird'))
                                                                proc255_0(0 57)
                                                            )(else
                                                                (if (Said('stand'))
                                                                    (if (proc999_5((send gEgo:view) 0 2 4 7 36 37 38 39))
                                                                        proc255_0(0 58)
                                                                    )(else
                                                                        proc255_0(0 59)
                                                                    )
                                                                )(else
                                                                    (if (Said('swim'))
                                                                        proc255_0(0 60)
                                                                    )(else
                                                                        (if (Said('dive'))
                                                                            proc255_0(0 61)
                                                                        )(else
                                                                            (if (Said('climb,climb<in'))
                                                                                proc255_0(0 62)
                                                                            )(else
                                                                                (if (Said('climb,climb'))
                                                                                    (if (== (send gEgo:view) 14)
                                                                                        proc255_0(0 63)
                                                                                    )(else
                                                                                        (if (== gNumber 73)
                                                                                            proc255_0(0 64)
                                                                                        )(else
                                                                                            proc255_0(0 65)
                                                                                        )
                                                                                    )
                                                                                )(else
                                                                                    (if (Said('bury/bean'))
                                                                                        (if (not (send gEgo:has(20)))
                                                                                            proc0_6()
                                                                                        )(else
                                                                                            proc255_0(0 66)
                                                                                        )
                                                                                    )(else
                                                                                        (if (((Said('open,open/bag[<leather]') or Said('look,look<in/bag[<leather]')) or Said('look,look/diamond')) or Said('look,look/content'))
                                                                                            (if ((send global2:script))
                                                                                                proc0_22()
                                                                                            )(else
                                                                                                (if (not (send gEgo:has(11)))
                                                                                                    proc0_6()
                                                                                                )(else
                                                                                                    proc0_19(62 3)
                                                                                                    proc255_0(0 67)
                                                                                                )
                                                                                            )
                                                                                        )(else
                                                                                            (if (Said('fill[/bowl]') or Said('say<fill'))
                                                                                                (if ((send global2:script))
                                                                                                    proc0_22()
                                                                                                )(else
                                                                                                    (if (proc0_12(112))
                                                                                                        proc255_0(0 68)
                                                                                                    )(else
                                                                                                        (if (not (send gEgo:has(7)))
                                                                                                            (send pEvent:claimed(0))
                                                                                                            (if (Said('/bowl'))
                                                                                                                proc0_6()
                                                                                                            )(else
                                                                                                                proc255_0(0 69)
                                                                                                                (send pEvent:claimed(1))
                                                                                                            )
                                                                                                        )(else
                                                                                                            (gameSound:
                                                                                                                number(69)
                                                                                                                loop(1)
                                                                                                                init()
                                                                                                                play()
                                                                                                            )
                                                                                                            proc255_0(0 70)
                                                                                                            ({ Ceramic Bowl }:
                                                                                                                loop(1)
                                                                                                                description("This large ceramic bowl is now filled with a savory beef stew.")
                                                                                                                said('/bowl,soup')
                                                                                                            )
                                                                                                            proc0_19(112 2)
                                                                                                        )
                                                                                                    )
                                                                                                )
                                                                                            )(else
                                                                                                (if (Said('open,open/chest'))
                                                                                                    (if ((send gEgo:has(1)))
                                                                                                        (if (proc0_12(26))
                                                                                                            proc255_0(0 71)
                                                                                                        )(else
                                                                                                            proc255_0(0 72)
                                                                                                            proc0_10(26)
                                                                                                        )
                                                                                                    )(else
                                                                                                        proc0_6()
                                                                                                    )
                                                                                                )(else
                                                                                                    (if (Said('fiddle,play/fiddle,jig'))
                                                                                                        (if (not proc999_5((send gEgo:view) 0 2 7 4) or (send global2:script))
                                                                                                            proc0_22()
                                                                                                        )(else
                                                                                                            (if (proc0_12(1))
                                                                                                                proc255_0(0 73)
                                                                                                            )(else
                                                                                                                (if (not (send gEgo:has(17)))
                                                                                                                    proc0_6()
                                                                                                                )(else
                                                                                                                    (send global2:setScript(ScriptID(782 0)))
                                                                                                                )
                                                                                                            )
                                                                                                        )
                                                                                                    )(else
                                                                                                        (if (Said('cast/dagger,dagger'))
                                                                                                            (if (not (send gEgo:has(0)))
                                                                                                                (if (proc0_12(90))
                                                                                                                    proc255_0(0 74)
                                                                                                                )(else
                                                                                                                    proc0_6()
                                                                                                                )
                                                                                                            )(else
                                                                                                                (if ((send global2:script))
                                                                                                                    proc0_22()
                                                                                                                )(else
                                                                                                                    (if (proc0_12(1))
                                                                                                                        proc255_0(0 73)
                                                                                                                    )(else
                                                                                                                        (if (global130)
                                                                                                                            proc255_0(0 75)
                                                                                                                        )(else
                                                                                                                            (send global2:setScript(ScriptID(780 0)))
                                                                                                                        )
                                                                                                                    )
                                                                                                                )
                                                                                                            )
                                                                                                        )(else
                                                                                                            (if (Said('use,cast,shoot/shot'))
                                                                                                                (if (not (send gEgo:has(10)))
                                                                                                                    proc0_6()
                                                                                                                )(else
                                                                                                                    (if (not (send gEgo:has(9)))
                                                                                                                        proc255_0(0 76)
                                                                                                                    )(else
                                                                                                                        (if ((send global2:script))
                                                                                                                            proc0_22()
                                                                                                                        )(else
                                                                                                                            (if (proc0_12(1))
                                                                                                                                proc255_0(0 77)
                                                                                                                            )(else
                                                                                                                                (if (> global130 1)
                                                                                                                                    proc255_0(0 78)
                                                                                                                                )(else
                                                                                                                                    (send global2:setScript(ScriptID(784 0)))
                                                                                                                                )
                                                                                                                            )
                                                                                                                        )
                                                                                                                    )
                                                                                                                )
                                                                                                            )(else
                                                                                                                (if (Said('cast/boulder,pebble'))
                                                                                                                    (if ((send gEgo:has(9)) and global140)
                                                                                                                        proc0_27()
                                                                                                                        (if (== global140 0)
                                                                                                                            proc255_0(0 79)
                                                                                                                        )(else
                                                                                                                            proc255_0(0 80)
                                                                                                                        )
                                                                                                                    )(else
                                                                                                                        proc0_6()
                                                                                                                    )
                                                                                                                )(else
                                                                                                                    (if (Said('cast/water'))
                                                                                                                        (if ((send gEgo:has(8)) and proc0_12(9))
                                                                                                                            proc255_0(0 81)
                                                                                                                        )(else
                                                                                                                            (if (== (send gEgo:view) 14)
                                                                                                                                proc255_0(0 82)
                                                                                                                            )(else
                                                                                                                                (if (== (send gEgo:view) 13)
                                                                                                                                    proc255_0(0 83)
                                                                                                                                )(else
                                                                                                                                    (if (global130)
                                                                                                                                        proc255_0(0 84)
                                                                                                                                    )(else
                                                                                                                                        proc255_0(0 85)
                                                                                                                                    )
                                                                                                                                )
                                                                                                                            )
                                                                                                                        )
                                                                                                                    )(else
                                                                                                                        (if (Said('get,get/drink') or Said('drink[/water]'))
                                                                                                                            (if (== (send gEgo:view) 14)
                                                                                                                                proc255_0(0 86)
                                                                                                                            )(else
                                                                                                                                (if (== (send gEgo:view) 13)
                                                                                                                                    proc255_0(0 87)
                                                                                                                                )(else
                                                                                                                                    (if (global130)
                                                                                                                                        proc255_0(0 88)
                                                                                                                                    )(else
                                                                                                                                        (if ((send gEgo:has(8)) and proc0_12(9))
                                                                                                                                            proc255_0(0 89)
                                                                                                                                            proc0_20(0)
                                                                                                                                        )(else
                                                                                                                                            proc255_0(0 90)
                                                                                                                                        )
                                                                                                                                    )
                                                                                                                                )
                                                                                                                            )
                                                                                                                        )(else
                                                                                                                            (if (Said('read,look,look/bowl'))
                                                                                                                                (if ((send gEgo:has(7)))
                                                                                                                                    ({ Ceramic Bowl }:showSelf())
                                                                                                                                )(else
                                                                                                                                    proc0_6()
                                                                                                                                )
                                                                                                                            )(else
                                                                                                                                (if (Said('read,look,look/note'))
                                                                                                                                    (if ((send gEgo:has(4)))
                                                                                                                                        ({ Note }:showSelf())
                                                                                                                                    )(else
                                                                                                                                        proc0_6()
                                                                                                                                    )
                                                                                                                                )(else
                                                                                                                                    (if (Said('look,look>') and (= temp0 (send gInv:firstTrue(#saidMe))))
                                                                                                                                        (if ((send temp0:ownedBy(gEgo)))
                                                                                                                                            (send temp0:showSelf())
                                                                                                                                        )(else
                                                                                                                                            proc0_6()
                                                                                                                                        )
                                                                                                                                    )(else
                                                                                                                                        (if (Said('get,get/gold,coin[<gold]'))
                                                                                                                                            (if ((send gEgo:has(1)))
                                                                                                                                                proc255_0(0 91)
                                                                                                                                            )(else
                                                                                                                                                (if ((send gEgo:has(18)) and proc0_12(67))
                                                                                                                                                    proc255_0(0 92)
                                                                                                                                                )(else
                                                                                                                                                    (if ((send gEgo:has(15)))
                                                                                                                                                        proc255_0(0 93)
                                                                                                                                                    )(else
                                                                                                                                                        proc255_0(0 94)
                                                                                                                                                    )
                                                                                                                                                )
                                                                                                                                            )
                                                                                                                                        )(else
                                                                                                                                            (if ((== gGNumber_2 gNumber) and Said('get,get/dagger'))
                                                                                                                                                proc255_0(0 95)
                                                                                                                                            )(else
                                                                                                                                                (if (Said('get,get>'))
                                                                                                                                                    = temp0 (send gInv:firstTrue(#saidMe))
                                                                                                                                                    (if (temp0 and (send ((= temp0 (send gInv:firstTrue(#saidMe)))):ownedBy(gEgo)))
                                                                                                                                                        proc255_0(0 18)
                                                                                                                                                    )(else
                                                                                                                                                        (if (Said('/*'))
                                                                                                                                                            proc255_0(0 96)
                                                                                                                                                        )(else
                                                                                                                                                            proc255_0(0 97)
                                                                                                                                                            (send pEvent:claimed(1))
                                                                                                                                                        )
                                                                                                                                                    )
                                                                                                                                                )(else
                                                                                                                                                    (if (Said('look,look/beanstalk'))
                                                                                                                                                        proc255_0(0 98)
                                                                                                                                                    )(else
                                                                                                                                                        (if (Said('look,look/edge'))
                                                                                                                                                            (if ((send gEgo:has(0)))
                                                                                                                                                                proc255_0(0 99)
                                                                                                                                                            )(else
                                                                                                                                                                proc255_0(0 100)
                                                                                                                                                            )
                                                                                                                                                        )(else
                                                                                                                                                            (if (Said('look,look'))
                                                                                                                                                                proc255_0(0 101)
                                                                                                                                                            )(else
                                                                                                                                                                (if (Said('why'))
                                                                                                                                                                    proc255_0(0 102)
                                                                                                                                                                )(else
                                                                                                                                                                    (if (Said('because'))
                                                                                                                                                                        proc255_0(0 103)
                                                                                                                                                                    )(else
                                                                                                                                                                        (if (Said('bitch[<*]'))
                                                                                                                                                                            (send pEvent:claimed(1))
                                                                                                                                                                        )(else
                                                                                                                                                                            (if (Said('excuse/i'))
                                                                                                                                                                                proc255_0(0 104)
                                                                                                                                                                            )(else
                                                                                                                                                                                (if (Said('what'))
                                                                                                                                                                                    proc255_0(0 105)
                                                                                                                                                                                )(else
                                                                                                                                                                                    (if (Said('how'))
                                                                                                                                                                                        proc255_0(0 106)
                                                                                                                                                                                    )(else
                                                                                                                                                                                        (if (Said('who'))
                                                                                                                                                                                            proc255_0(0 107)
                                                                                                                                                                                        )(else
                                                                                                                                                                                            (if (Said('when'))
                                                                                                                                                                                                proc255_0(0 108)
                                                                                                                                                                                            )(else
                                                                                                                                                                                                (if (Said('use'))
                                                                                                                                                                                                    proc255_0(0 109)
                                                                                                                                                                                                )(else
                                                                                                                                                                                                    (if (Said('smell,smell'))
                                                                                                                                                                                                        proc255_0(0 110)
                                                                                                                                                                                                    )(else
                                                                                                                                                                                                        (if (Said('cast,give'))
                                                                                                                                                                                                            proc255_0(0 111)
                                                                                                                                                                                                        )(else
                                                                                                                                                                                                            (if (Said('move'))
                                                                                                                                                                                                                proc255_0(0 112)
                                                                                                                                                                                                            )(else
                                                                                                                                                                                                                (if (Said('speak,speak/*'))
                                                                                                                                                                                                                    proc255_0(0 113)
                                                                                                                                                                                                                )(else
                                                                                                                                                                                                                    (if (Said('speak,speak'))
                                                                                                                                                                                                                        proc255_0(0 114)
                                                                                                                                                                                                                    )
                                                                                                                                                                                                                )
                                                                                                                                                                                                            )
                                                                                                                                                                                                        )
                                                                                                                                                                                                    )
                                                                                                                                                                                                )
                                                                                                                                                                                            )
                                                                                                                                                                                        )
                                                                                                                                                                                    )
                                                                                                                                                                                )
                                                                                                                                                                            )
                                                                                                                                                                        )
                                                                                                                                                                    )
                                                                                                                                                                )
                                                                                                                                                            )
                                                                                                                                                        )
                                                                                                                                                    )
                                                                                                                                                )
                                                                                                                                            )
                                                                                                                                        )
                                                                                                                                    )
                                                                                                                                )
                                                                                                                            )
                                                                                                                        )
                                                                                                                    )
                                                                                                                )
                                                                                                            )
                                                                                                        )
                                                                                                    )
                                                                                                )
                                                                                            )
                                                                                        )
                                                                                    )
                                                                                )
                                                                            )
                                                                        )
                                                                    )
                                                                )
                                                            )
                                                        )
                                                    )
                                                )
                                            )
                                        )
                                    )
                                )
                            )
                        )
                    )
                )
            )
            (case 1
                (if (global118 and (User:controls))
                    = temp4 (send pEvent:x)
                    = temp5 (send pEvent:y)
                    = temp6 (send pEvent:modifiers)
                    (if (not 
                    (if (& temp6 $0003)
                    )(else
                        & temp6 $0004
                    )
)
                        (send pEvent:claimed(1))
                        (send ((User:alterEgo)):setMotion(MoveTo temp4 temp5))
                    )
                )
            )
        )
    )


    (method (wordFail param1 param2)
        (var temp0[100])
        (if ((== gNumber 40) and proc0_12(37))
            (send global2:notify(param1))
        )(else
            proc255_4(0 115 param1)
            proc0_9(Format(@temp0 0 116 param1 param2) "Unknown word")
        )
    )


    (method (syntaxFail param1)
        proc255_0(0 117)
        proc0_9(param1 "Couldn't parse")
    )


    (method (pragmaFail param1)
        proc255_0(0 118)
        proc0_9(param1 "No response")
    )

)
(instance statusCode of Code
    (properties)

    (method (doit param1)
        Format(param1 0 119 global15 global16 0 120 "King's Quest I" 0 120)
    )

)
(instance ego of Ego
    (properties)
)
(instance goat of Actor
    (properties
        view 165
    )

    (method (handleEvent pEvent)
        (super:handleEvent(pEvent))
        (if (not (send pEvent:claimed) and (== (send pEvent:type) 128))
            (if (Said('look,look/goat'))
                (self:doVerb(1))
            )
            (if (Said('get,get/goat'))
                (send pEvent:claimed(0))
            )
        )
    )


    (method (doVerb theVerb)
        (switch (theVerb)
            (case 1
                (if (gGNumber_2)
                    proc255_0(0 121)
                )(else
                    (if (== view 166)
                        proc255_0(0 122)
                    )(else
                        (if (proc0_12(2))
                            proc255_0(0 123)
                        )(else
                            (if (not proc0_12(36))
                                (if (& (send gGoat:onControl()) $3000)
                                    proc255_0(0 124)
                                )(else
                                    proc255_0(0 125)
                                )
                            )(else
                                proc255_0(0 9)
                            )
                        )
                    )
                )
            )
        )
    )

)
(instance menace of Actor
    (properties)

    (method (handleEvent pEvent)
        (if ((send pEvent:claimed))
            return 
        )(else
            (if (& signal $0080)
                (send pEvent:claimed(0))
            )(else
                (if ((super:handleEvent(pEvent)))
                    return 
                )
            )
        )
    )


    (method (doVerb theVerb param2)
        (if (== view 130)
            = description "ogre"
            (super:doVerb(theVerb rest param2))
        )(else
            (if (== view 125)
                = description "wolf"
                (super:doVerb(theVerb rest param2))
            )(else
                (if (proc999_5(view 120 121 123 124 126))
                    = description "troll"
                    (if (proc0_12(13))
                        proc255_0(0 126)
                    )(else
                        proc255_0(0 127)
                    )
                )(else
                    (if (proc999_5(view 115 116 117 118 119))
                        = description "witch"
                        (super:doVerb(theVerb rest param2))
                    )(else
                        (if (proc999_5(view 135 136))
                            = description "dwarf"
                            (super:doVerb(theVerb rest param2))
                        )(else
                            (super:doVerb(theVerb rest param2))
                        )
                    )
                )
            )
        )
    )

)
(instance { Dagger } of InvI
    (properties
        said 10929
        description 11371
        view 501
    )
)
(instance { Chest } of InvI
    (properties
        said 10933
        description 11433
        owner 58
        view 505
    )
)
(instance { Carrot } of InvI
    (properties
        said 10572
        description 11539
        view 517
    )
)
(instance { Key } of InvI
    (properties
        said 10937
        description 11581
        view 508
    )
)
(instance { Note } of InvI
    (properties
        said 10941
        description 11615
        view 513
    )

    (method (showSelf)
        (super:showSelf())
        proc0_19(78 2)
    )

)
(instance { Magic Ring } of InvI
    (properties
        said 10948
        description 11711
        view 516
    )
)
(instance { Four-leaf Clover } of InvI
    (properties
        said 10952
        description 11792
        view 515
    )
)
(instance { Ceramic Bowl } of InvI
    (properties
        said 10685
        description 11849
        view 511
    )

    (method (showSelf)
        (super:showSelf())
        (if (not proc0_12(112))
            proc0_19(93 1)
        )
    )

)
(instance { Empty Water Bucket } of InvI
    (properties
        said 10956
        description 11941
        view 519
    )
)
(instance { Pebbles } of InvI
    (properties
        said 10960
        description 11991
        view 510
    )

    (method (showSelf)
        (var temp0[80])
        (if (== global140 1)
            proc255_0(Format(@temp0 0 128 global140) 82 510 0 0)
        )(else
            proc255_0(Format(@temp0 0 129 global140) 82 510 - global140 1 0)
        )
    )

)
(instance { Leather Slingshot } of InvI
    (properties
        said 10964
        description 12060
        owner 62
        view 520
    )
)
(instance { Pouch } of InvI
    (properties
        said 10971
        description 12106
        view 500
    )
)
(instance { Sceptre } of InvI
    (properties
        said 10975
        description 12155
        view 504
    )
)
(instance { Cheese } of InvI
    (properties
        said 10580
        description 12226
        view 514
    )
)
(instance { Magic Mirror } of InvI
    (properties
        said 10979
        description 12294
        view 503
    )
)
(instance { Gold Egg } of InvI
    (properties
        said 10983
        description 12371
        owner 63
        view 518
    )
)
(instance { Magic Shield } of InvI
    (properties
        said 10987
        description 12423
        view 522
    )
)
(instance { Fiddle } of InvI
    (properties
        said 10991
        description 12498
        owner 79
        view 506
    )
)
(instance { Walnut } of InvI
    (properties
        said 10995
        description 12544
        view 512
    )
)
(instance { Mushroom } of InvI
    (properties
        said 10568
        description 12591
        view 507
    )
)
(instance { Beans } of InvI
    (properties
        said 10576
        description 12642
        view 509
    )
)
(instance logFile of Class_993_0
    (properties)
)
(instance kqWindow of SysWindow
    (properties
        top 20
    )
)
