(version 2)
(include "sci.sh")
(exports
    0 shrinkEgo
)
(use "Main")
(use "Cycle")
(use "User")
(use "MenuBar")
(use "Obj")
(script 779)



(instance public shrinkEgo of Script
    (properties)

    (method (doit param1)
        (super:doit(rest param1))
        (if (((== state 3) and (== gNumber 78)) and (== (send gEgo:onControl(1)) 128))
            = seconds 0
            (self:cue())
        )
    )


    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (if ((== gNumber 78) and (== (send gEgo:onControl(1)) 128))
                    (send gEgo:setMotion(MoveTo 304 145 self))
                )(else
                    (self:cue())
                )
            )
            (case 1
                proc0_2()
                (send gEgo:
                    view(24)
                    cel(0)
                    cycleSpeed(1)
                    setCycle(End self)
                    setMotion(0)
                )
                proc0_8(19 0)
            )
            (case 2
                (send (ScriptID(0 21)):
                    number(20)
                    init()
                    play()
                )
                (send gEgo:
                    view(30)
                    setCycle(End self)
                )
            )
            (case 3
                (send gEgo:
                    view(31)
                    setStep(2 1)
                    cycleSpeed(0)
                    illegalBits(-32768)
                    setCycle(Walk)
                )
                (if (== gNumber 78)
                    proc0_19(104 2)
                    (User:canControl(1))
                    (MenuBar:state(1))
                    = seconds 10
                )(else
                    (send gGame:changeScore(-1))
                    = seconds 4
                )
            )
            (case 4
                (User:canControl(0))
                (if ((== gNumber 78) and (== (send gEgo:onControl(1)) 2))
                    proc0_16("The mushroom wore off and you enlarged.  But you can't squeeze a five-foot Knight into a 6-inch hole!")
                )(else
                    (send (ScriptID(0 21)):
                        number(21)
                        play()
                    )
                    (send gEgo:
                        view(30)
                        cycleSpeed(1)
                        cel(6)
                        setMotion(0)
                        illegalBits(-32766)
                        setCycle(Beg self)
                    )
                )
            )
            (case 5
                proc0_1()
                (send gEgo:
                    loop(2)
                    illegalBits(-32766)
                )
                proc0_3()
                (self:dispose())
            )
        )
    )

)
