(include "sci.sh")
(use "Main")
(use "Class_255_0")
(use "Sound")
(use "Cycle")
(use "Game")
(use "User")
(use "PV")
(use "Obj")
(script 92)


(local
    newProp_2
    newProp_3
    newProp_4
    newAct
    local4
    local5
    gInvFirst
    newProp
    local8
    local9
    local10

)
(instance theMusic of Sound
    (properties
        number 44
    )
)
(instance public Room92 of Rm
    (properties
        picture 92
        style 16
    )

    (method (init)
        Load(rsVIEW 82)
        Load(rsVIEW 121)
        Load(rsVIEW 132)
        Load(rsVIEW 681)
        Load(rsVIEW 81)
        Load(rsVIEW 145)
        Load(rsVIEW 141)
        Load(rsVIEW 634)
        Load(rsVIEW 512)
        (self:setRegions(604))
        (super:init())
        proc0_12(604 0)
        = local8 0
        (send ((View:new())):
            view(634)
            loop(1)
            cel(0)
            posn(32 80)
            setPri(10)
            init()
            startUpd()
        )
        (send ((View:new())):
            view(634)
            loop(1)
            cel(1)
            posn(289 81)
            setPri(10)
            init()
            addToPic()
        )
        (send ((Prop:new())):
            view(512)
            loop(0)
            posn(289 69)
            setPri(10)
            init()
            setCycle(Fwd)
        )
        (send (= newProp (Prop:new())):
            view(512)
            loop(0)
            posn(34 68)
            setPri(10)
            init()
            setCycle(Fwd)
        )
        = global101 1
        (if (== gPicture 80)
            (send gEgo:
                posn(153 157)
                view(4)
                xStep(4)
                yStep(1)
                init()
            )
        )
        (if (== gPicture 91)
            (send gEgo:
                posn(53 132)
                view(4)
                xStep(4)
                yStep(1)
                init()
            )
        )
        (if (== gPicture 93)
            (send gEgo:
                posn(271 132)
                view(4)
                xStep(4)
                yStep(1)
                init()
            )
        )
        (if (== gPicture 86)
            (send (= newProp_2 (Prop:new())):
                posn(162 103)
                view(121)
                cycleSpeed(1)
                setLoop(0)
                init()
                stopUpd()
                setScript(lipLooper)
            )
            (send (= newProp_3 (Prop:new())):
                posn(210 95)
                view(132)
                loop(2)
                cel(0)
                init()
                stopUpd()
            )
            (User:
                canControl(0)
                canInput(0)
            )
            = global205 1
            (send gEgo:
                posn(251 132)
                view(81)
                setLoop(1)
                init()
                setCycle(Walk)
            )
            (lotTalk2:start(0))
            (self:setScript(lotTalk2))
        )
        (if (((== gPicture 79) or (== gPicture 0)) or (== gPicture 333))
            (send gEgo:
                posn(153 157)
                view(82)
                xStep(4)
                yStep(1)
                setLoop(0)
                init()
                setCycle(Walk)
            )
            (send (= newProp_2 (Prop:new())):
                posn(162 103)
                view(121)
                cycleSpeed(1)
                setLoop(0)
                init()
                stopUpd()
                setScript(lipLooper)
            )
            (send (= newProp_3 (Prop:new())):
                posn(210 95)
                view(132)
                cel(0)
                loop(2)
                init()
                stopUpd()
            )
            (send (= newAct (Act:new())):
                view(141)
                setStep(4 2)
                illegalBits(0)
                ignoreActors(1)
                posn(350 130)
                setCycle(Walk)
                init()
                stopUpd()
            )
            (User:
                canControl(0)
                canInput(0)
            )
            = global205 1
            (send global2:setScript(walkIn))
        )
        (if ((send gCast:contains(newProp_2)))
            (theMusic:
                loop(1)
                play()
            )
        )
    )


    (method (doit)
        (if (& (send gEgo:onControl(0)) $0040)
            (if ((== global109 99) and (== global169 0))
                (send global2:newRoom(80))
            )(else
                (if (not local10)
                    Print(92 0)
                    = local10 1
                )
            )
        )(else
            = local10 0
        )
        (if ((& (send gEgo:onControl(0)) $0020) and (<> (send gEgo:view()) 81))
            (send global2:newRoom(91))
        )
        (if ((& (send gEgo:onControl(0)) $0010) and (<> (send gEgo:view()) 81))
            (send global2:newRoom(93))
        )
        (super:doit())
    )


    (method (dispose)
        (send gSounds:eachElementDo(172))
        (super:dispose())
    )


    (method (handleEvent pEvent)
        return 
            (if ((send pEvent:claimed()))
                return 1
            )(else
                (if ((local8 and (== (send pEvent:type()) 4)) and (== (send pEvent:message()) 13))
                    (send ((self:script())):seconds(1))
                    = local9 0
                    = local8 0
                )
                (if (== (send pEvent:type()) 128)
                    (if (Said('look>'))
                        (if (Said('/throne'))
                            Print(92 1)
                        )(else
                            (if (Said('/stair'))
                                Print(92 2)
                            )(else
                                (if (Said('<behind,under/tapestries,painting'))
                                    Print(92 3)
                                )(else
                                    (if (Said('/tapestries,painting'))
                                        Print(92 4)
                                    )(else
                                        (if (Said('/door'))
                                            Print(92 5)
                                        )(else
                                            (if (Said('/wall'))
                                                Print(92 6)
                                            )(else
                                                (if (Said('/dirt') or Said('<down'))
                                                    Print(92 7)
                                                )(else
                                                    (if (Said('/carpet'))
                                                        Print(92 8)
                                                    )(else
                                                        (if ((Said('<around') or Said('/room[<throne]')) or Said('/castle'))
                                                            Print(92 9)
                                                        )
                                                    )
                                                )
                                            )
                                        )
                                    )
                                )
                            )
                        )
                    )(else
                        (if (Said('sit/throne'))
                            Print(92 10)
                        )(else
                            (if (Said('open/door'))
                                (if ((== global109 99) and (== global169 0))
                                    Print(92 11)
                                )(else
                                    Print(92 12)
                                    Print(92 13)
                                )
                            )(else
                                (if (Said('unlatch/door'))
                                    (if ((== global109 99) and (== global169 0))
                                        Print(92 14)
                                    )(else
                                        Print(92 15)
                                    )
                                )
                            )
                        )
                    )
                )
            )
    )


    (method (newRoom param1)
        (if ((== param1 80) or (== param1 30))
            (send (ScriptID(604)):keep(0))
            = global189 0
        )
        (super:newRoom(param1))
    )

)
(instance walkIn of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gEgo:setMotion(MoveTo 153 137 self))  )
            )
            (case 1
                ((send gEgo:cel(1)) 
                (switch (global109)
                    (case 0
                        (= global169 1 (send global2:setScript(lotTalk1))  )
                    )
                    (case 1
                        ((send global2:setScript(lotTalk3))  )
                    )
                    (case 2
                        ((send global2:setScript(lotTalk4))  )
                    )
                    (case 3
                        ((send global2:setScript(lotTalk5))  )
                    )
                    (default 
                        (Print(92 16) )
                    )
                )
 )
            )
        )
    )

)
(instance lotTalk1 of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (= local9 3 = local4 Print(92 17 134 5 25 66 global23 140 125 166 172) = local8 1 = seconds 7  )
            )
            (case 1
                (= local9 0 proc0_23() = local4 Print(92 18 134 5 25 66 global23 140 125 172) = local8 1 = seconds 7  )
            )
            (case 2
                (= local9 9 proc0_23() = local4 Print(92 19 134 5 25 66 global23 140 125 172) = local8 1 = seconds 10  )
            )
            (case 3
                (proc0_23() = local4 Print(92 20 134 5 25 66 global23 140 125 172) = local8 1 = seconds 16  )
            )
            (case 4
                (proc0_23() = local4 Print(92 21 134 5 25 66 global23 140 125 172) = local8 1 = seconds 8  )
            )
            (case 5
                (proc0_23() = local9 8 = local4 Print(92 22 66 global23 134 5 25 140 125 172) = local8 1 = seconds 9  )
            )
            (case 6
                (proc0_23() = local4 Print(92 23 66 global23 134 5 25 140 125 172) (send newProp_2:
                    loop(1)
                    cel(0)
                    setCycle(End)
                )
 = local8 1 = seconds 4  )
            )
            (case 6
                (= local8 0 (send gEgo:
                    view(81)
                    setLoop(0)
                    illegalBits(0)
                    setMotion(MoveTo 325 132)
                )
 = seconds 5  )
            )
            (case 7
                ((send newProp:setCycle(Fwd)) proc0_23() (send global2:newRoom(86)) )
            )
        )
    )

)
(instance lotTalk2 of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send gEgo:setMotion(MoveTo 153 137 self))  )
            )
            (case 1
                ((send gEgo:
                    view(82)
                    loop(0)
                    cel(1)
                )
 = local9 4 = local4 Print(92 24 134 5 25 66 global23 140 125 172) = local8 1 = seconds 7  )
            )
            (case 2
                (= local9 7 proc0_23() = local4 Print(92 25 134 5 25 66 global23 140 125 172) = local8 1 = seconds 10  )
            )
            (case 3
                (proc0_23() = local4 Print(92 26 134 5 25 66 global23 140 125 172) (send newProp_3:
                    view(132)
                    loop(2)
                    setCycle(End)
                )
 = local8 1 = seconds 6  )
            )
            (case 4
                (= local9 5 proc0_23() (send newProp_3:setCycle(Beg)) = local4 Print(92 27 134 5 25 66 global23 140 125 172) = local8 1 = seconds 6  )
            )
            (case 5
                (= local9 5 proc0_23() = local4 Print(92 28 134 5 25 66 global23 140 125 172) = local8 1 = seconds 7  )
            )
            (case 6
                (= local9 3 (send newProp:setCycle(Fwd)) proc0_23() = local4 Print(92 29 66 global23 134 5 25 140 125 172) (send newProp_2:
                    loop(2)
                    cel(0)
                    setCycle(End)
                )
 = local8 1 = seconds 6  )
            )
            (case 7
                (= local8 0 proc0_23() = global109 1 (User:
                    canControl(1)
                    canInput(1)
                )
 = global205 0 (send global2:newRoom(30)) )
            )
        )
    )

)
(instance lotTalk3 of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (= local9 6 = local4 Print(92 30 134 5 25 66 global23 140 125 172) = global123 99 (send gGame:changeScore(7)) (send newProp_3:
                    view(132)
                    loop(2)
                    setCycle(End)
                )
 = local8 1 = seconds 7  )
            )
            (case 1
                (= local9 8 proc0_23() = local4 Print(92 31 134 5 25 66 global23 140 125 172) = local8 1 = seconds 8  )
            )
            (case 2
                (proc0_23() (send newProp_3:setCycle(Beg)) = local4 Print(92 32 66 global23 140 125 172) = local8 1 = seconds 7  )
            )
            (case 3
                (= local9 12 proc0_23() = local4 Print(92 33 134 5 25 66 global23 140 125 172) = local8 1 = seconds 12  )
            )
            (case 4
                (= local9 6 proc0_23() = local4 Print(92 34 134 5 25 66 global23 140 125 172) = local8 1 = seconds 6  )
            )
            (case 5
                ((send newProp:setCycle(Fwd)) proc0_23() = local4 Print(92 35 66 global23 134 5 25 140 125 172) (send newProp_2:
                    loop(2)
                    cel(0)
                    setCycle(End)
                )
 = local8 1 = seconds 5  )
            )
            (case 6
                (proc0_23() = global109 2 (User:
                    canControl(1)
                    canInput(1)
                )
 = global205 0 (send global2:newRoom(30)) )
            )
        )
    )

)
(instance lotTalk4 of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (= local9 8 = local4 Print(92 36 134 5 25 66 global23 140 125 172) (send gEgo:put(33 84)) (send gGame:changeScore(7)) (send newProp_3:
                    view(132)
                    loop(2)
                    setCycle(End)
                )
 = local8 1 = seconds 10  )
            )
            (case 1
                (proc0_23() = local4 Print(92 37 134 5 25 66 global23 140 125 172) = local8 1 = seconds 4  )
            )
            (case 2
                ((send newProp_3:setCycle(Beg)) = local9 6 proc0_23() = local4 Print(92 38 134 5 25 66 global23 140 125 172) = local8 1 = seconds 8  )
            )
            (case 3
                (= local9 8 proc0_23() = local4 Print(92 39 134 5 25 66 global23 140 125 172) = local8 1 = seconds 8  )
            )
            (case 4
                (proc0_23() = local4 Print(92 40 134 5 25 66 global23 140 125 172) = local8 1 = seconds 4  )
            )
            (case 5
                (= local9 6 proc0_23() = local4 Print(92 41 134 5 25 66 global23 140 125 172) = local8 1 = seconds 10  )
            )
            (case 6
                (= local9 7 proc0_23() = local4 Print(92 42 134 5 25 66 global23 140 125 172) = local8 1 = seconds 10  )
            )
            (case 7
                (proc0_23() = local4 Print(92 43 134 5 25 66 global23 140 125 172) = local8 1 = seconds 6  )
            )
            (case 8
                (proc0_23() = local4 Print(92 44 134 5 25 66 global23 140 125 172) = local8 1 = seconds 8  )
            )
            (case 9
                (= local9 8 proc0_23() = local4 Print(92 45 134 5 25 66 global23 140 125 172) = local8 1 = seconds 10  )
            )
            (case 10
                (proc0_23() = local4 Print(92 46 66 global23 134 5 25 140 125 172) (send newProp_2:
                    loop(2)
                    cel(0)
                    setCycle(End)
                )
 = local8 1 = seconds 6  )
            )
            (case 11
                ((send newProp:setCycle(Fwd)) proc0_23() = global109 3 (User:
                    canControl(1)
                    canInput(1)
                )
 = global205 0 (send global2:newRoom(30)) )
            )
        )
    )

)
(instance lotTalk5 of Script
    (properties)

    (method (init param1)
        (super:init(param1))
    )


    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (= local9 6 = local4 Print(92 47 134 5 25 66 global23 140 125 172) (send gEgo:put(4 84)) (send gGame:changeScore(7)) (send newProp_3:
                    view(132)
                    loop(2)
                    setCycle(End)
                )
 = local8 1 = seconds 10  )
            )
            (case 1
                (proc0_23() = local4 Print(92 48 134 25 45 66 global23 140 -1 172) = local8 1 = seconds 4  )
            )
            (case 2
                (= local9 3 proc0_23() (send newProp_3:setCycle(Beg)) = local4 Print(92 49 134 5 25 66 global23 140 125 172) = local8 1 = seconds 8  )
            )
            (case 3
                (= local9 4 proc0_23() = local4 Print(92 50 134 5 25 66 global23 140 125 172) = local8 1 = seconds 8  )
            )
            (case 4
                (= local9 6 proc0_23() = local4 Print(92 51 134 5 25 66 global23 140 125 172) (send newProp_2:
                    loop(2)
                    cel(0)
                    setCycle(End)
                )
 = local8 1 = seconds 10  )
            )
            (case 5
                (proc0_23() = local4 Print(92 52 134 5 25 66 global23 140 125 172) = local8 1 = seconds 6  )
            )
            (case 6
                (= seconds 1  )
            )
            (case 7
                ((send (= newProp_4 (Prop:new())):
                    view(681)
                    posn((send newProp_3:x()) - (send newProp_3:y()) 35)
                    cel(0)
                    init()
                    cycleSpeed(1)
                    setCycle(End self)
                )
 (send newProp_2:
                    loop(3)
                    cel(0)
                    setCycle(End)
                )
 = local8 0  )
            )
            (case 8
                ((send newProp_4:dispose()) = seconds 10  )
            )
            (case 9
                ((send newProp_2:
                    loop(3)
                    cel(0)
                    setCycle(Beg)
                )
 proc0_23() = local4 Print(92 53 134 5 25 66 global23 140 125 172) = local8 1 = seconds 10  )
            )
            (case 10
                (proc0_23() = local4 Print(92 54 134 5 25 66 global23 140 125 172) = local8 1 = seconds 7  )
            )
            (case 11
                (proc0_23() (getShit:changeState(0)) = local4 Print(92 55 134 5 25 66 global23 140 125 172) = local8 0 = seconds 10  )
            )
            (case 12
                (proc0_23() = local4 Print(92 56 134 5 25 66 global23 140 125 172) = gInvFirst (send gInv:first()) (while (gInvFirst)
                    (if ((= local5 NodeValue(gInvFirst)) and (== (send ((= local5 NodeValue(gInvFirst))):owner()) gEgo))
                        (send local5:owner(89))
                    )
 = gInvFirst (send gInv:next(gInvFirst))  ) = local8 0 = seconds 8  )
            )
            (case 13
                ((send newProp_2:
                    loop(2)
                    setCycle(Beg self)
                )
  )
            )
            (case 14
                ((send newProp:setCycle(Fwd)) proc0_23() = local4 Print(92 57 134 5 25 66 global23 140 125 172) = local9 3 = local8 1 = seconds 6  )
            )
            (case 15
                ((send gEgo:
                    view(81)
                    illegalBits(0)
                    setLoop(1)
                    setMotion(MoveTo 65531 132 self)
                )
  )
            )
            (case 16
                (proc0_23() = global109 99 (send gEgo:
                    hide()
                    illegalBits(32768)
                )
 (send global2:newRoom(81)) )
            )
        )
    )

)
(instance lipLooper of Script
    (properties)

    (method (doit)
        (if (((> local9 0) and (== (send newProp_2:loop()) 0)) and (== (send newProp_2:cycler()) 0))
            --local9
            (send newProp_2:setCycle(End))
        )
    )

)
(instance getShit of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                ((send newAct:
                    posn(290 130)
                    setMotion(MoveTo 153 130 self)
                )
  )
            )
            (case 1
                ((send newAct:loop(2)) (send newAct:setMotion(MoveTo 320 130 self))  )
            )
            (case 2
                ((send newAct:dispose()) )
            )
        )
    )

)
