Author Topic: King's Quest 6 (CD) Easter Egg? (Help Needed)  (Read 2949 times)

0 Members and 1 Guest are viewing this topic.

Offline OmerMor

King's Quest 6 (CD) Easter Egg? (Help Needed)
« on: July 24, 2015, 07:01:05 AM »
Akril from the SHP forums found an interesting view in KQ6, see here:
http://www.sierrahelp.com/forums/viewtopic.php?f=6&t=4311

The view number is 257, and it is only referenced from room 250 in the CD version of the game.

Here's the decompiled room script:
Code: [Select]
(version 2)
(include "sci.sh")
(exports
    0 rm250
)
(use "Main")
(use "walkEgoInScr")
(use "NewRoomCue")
(use "n913")
(use "MessageObj")
(use "Scaler")
(use "PolyPath")
(use "Polygon")
(use "CueObj")
(use "Cycle")
(use "View")
(use "Obj")
(script 250)

(local
    local0 =     -1
    local1[2]
    local3
    local4

)
(procedure (localproc_149a)
    return == (beauty:script) roseTendingScr
)


(procedure (localproc_14a9)
    return
        (if (localproc_149a())
            (if (proc913_0(37))
                10
            )(else
                12
            )
        )(else
            11
        )
)

(instance public rm250 of KQ6Room
    (properties
        noun 3
        picture 250
        horizon 0
        east 240
        south 240
        west 260
    )

    (method (init param1)
        (send global2:addObstacle((send ((Polygon:new())):
                type(2)
                init(369 -60 369 169 319 169 65 110 0 110 0 -60)
                yourself()
            )
 (send ((Polygon:new())):
                type(0)
                init(-40 125 40 125 201 189 201 229 -40 229)
                yourself()
            )
 (send ((Polygon:new())):
                type(2)
                init(0 161 84 162 103 186 176 186 176 189 0 189)
                yourself()
            )
))
        (send gEgo:
            init()
            setScale(Scaler 100 67 153 109)
        )
        (super:init(rest param1))
        (if (== gGArrayScriptGetValue 260)
            proc12_1(8 116)
        )(else
            proc12_1(272 187 -50)
        )
        (houseDoor:init())
        (gate:init())
        (genericFeatures:init())
        (houseRoses:init())
        (palmTrees:init())
        (featureToBeIgnored:init())
        (send (ScriptID(10 4)):
            onMeCheck(8)
            init()
        )
        (leaves:init())
        (if (>= (send gKq6:_detailLevel) 2)
            (leaves:setScript(ScriptID(13 0)))
        )
        (if ((send gEgo:has(37)) and not proc913_0(43))
            (beauty:init(1))
        )(else
            (if (((<> global154 global153) and (<= global155 3)) and not proc913_0(43))
                (beauty:
                    init(0)
                    setScript(
                        (if (proc999_5(++global155 3 4))
                            rmAct3and4Scr
                        )(else
                            rmAct1and2Scr
                        )
)
                )
            )
        )
        (send global102:
            number(250)
            loop(-1)
            play()
        )
    )


    (method (dispose param1)
        = global154 global153
        proc913_2(59)
        (super:dispose(rest param1))
        DisposeScript(964)
        DisposeScript(13)
    )


    (method (doVerb theVerb param2)
        (if (== theVerb 1)
            (send gKq6Messager:say(noun theVerb
                (if (< global153 5)
                    26
                )(else
                    27
                )
))
            1
        )(else
            (super:doVerb(theVerb rest param2))
        )
    )


    (method (edgeToRoom param1 param2)
        (var temp0)
        = temp0 1
        (switch (param1)
            (case 3
                proc12_0(param1 -50)
                return 0
            )
            (case 2
                proc12_0(3 -50)
                return 0
            )
            (case 4
                proc12_0(param1)
                return 0
            )
            (default
                = temp0 0
                (super:edgeToRoom(param1 rest param2))
            )
        )
        return
            (if (temp0)
                (beauty:setScript(0))
                (send global102:fade())
            )(else
                0
            )
    )


    (method (scriptCheck param1 param2)
        (var temp0, temp1)
        = temp0 0
        (switch (param1)
            (case 87
                (if ((send gNewEventHandler:contains(beauty)))
                    (send gKq6Messager:say(0 0 2 0 0 899))
                )(else
                    = temp0 1
                )
            )
            (case 85
                = temp1 (send gNewEventHandler:contains(beauty))
                (if (temp1 and localproc_149a())
                    (CueObj:
                        state(0)
                        cycles(0)
                        client(beauty)
                        theVerb(31)
                    )
                    (send gEgo:setMotion(PolyPath (beauty:approachX) (beauty:approachY) CueObj))
                )(else
                    (if (temp1)
                        (beauty:doVerb(31 rest param2))
                    )(else
                        = temp0 1
                    )
                )
            )
            (case 93
                (if ((send gNewEventHandler:contains(beauty)))
                    (send gKq6Messager:say(7 0 16 0 0 0))
                )(else
                    = temp0 1
                )
            )
            (default
                = temp0 1
            )
        )
        return temp0
    )

)
(instance roomConv of Conversation
    (properties)
)
(instance rmAct1and2Scr of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc913_1(59)
                (send client:
                    view(253)
                    loop(2)
                    cel(0)
                    posn(213 81)
                    setCycle(End self)
                )
            )
            (case 1
                (send client:
                    loop(3)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 2
                (send client:
                    cel(0)
                    posn(202 88)
                    setCycle(End self)
                )
            )
            (case 3
                (send client:
                    cel(0)
                    posn(194 94)
                    setCycle(End self)
                )
            )
            (case 4
                (send client:
                    loop(4)
                    cel(0)
                    posn(191 96)
                    setCycle(End self)
                )
            )
            (case 5
                = seconds (= register Random(1 9))
            )
            (case 6
                (send client:
                    loop(5)
                    cel(0)
                    posn(174 97)
                    setCycle(End self)
                )
            )
            (case 7
                (send client:
                    loop(6)
                    cel(0)
                )
                = seconds (- 10 register)
            )
            (case 8
                (houseDoor:
                    noun(23)
                    view(255)
                    loop(0)
                    cel(0)
                    setCycle(End self)
                )
                (send global105:
                    number(901)
                    loop(1)
                    play()
                )
            )
            (case 9
                = ticks 12
            )
            (case 10
                (houseDoor:
                    loop(1)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 11
                = cycles 2
            )
            (case 12
                (houseDoor:
                    loop(2)
                    cel(0)
                )
                = cycles 2
            )
            (case 13
                (if (== global155 1)
                    = register 4
                )(else
                    = register 5
                )
                (send gKq6Messager:say(1 0 register 1 self))
            )
            (case 14
                (send gKq6Messager:say(1 0 register 2 self))
            )
            (case 15
                (if (<> register 4)
                    (houseDoor:setCycle(End self))
                )(else
                    ++state
                    = ticks 1
                )
            )
            (case 16
                = cycles 2
            )
            (case 17
                (send gKq6Messager:say(1 0 register 3 self))
            )
            (case 18
                (if (== register 4)
                    (houseDoor:setCycle(End self))
                )(else
                    ++state
                    = ticks 1
                )
            )
            (case 19
                = cycles 2
            )
            (case 20
                (send gKq6Messager:say(1 0 register 4 self))
            )
            (case 21
                (if (<> register 4)
                    = cycles 1
                )(else
                    (send gKq6Messager:say(1 0 register 5 self))
                )
            )
            (case 22
                (send client:setScript(rmEndofScriptsScr))
            )
        )
    )

)
(instance rmAct3and4Scr of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                proc913_1(59)
                (send client:
                    view(253)
                    loop(4)
                    cel(7)
                    posn(191 96)
                )
                = cycles 1
            )
            (case 1
                = seconds (= register Random(1 9))
            )
            (case 2
                (send client:
                    loop(5)
                    cel(0)
                    posn(174 97)
                    setCycle(End self)
                )
            )
            (case 3
                (send client:
                    loop(6)
                    cel(0)
                )
                = seconds (- 10 register)
            )
            (case 4
                (houseDoor:
                    noun(23)
                    view(255)
                    loop(0)
                    cel(0)
                    setCycle(End self)
                )
                (send global105:
                    number(901)
                    loop(1)
                    play()
                )
            )
            (case 5
                = cycles 2
            )
            (case 6
                (if (== global155 3)
                    = register 6
                    (houseDoor:
                        loop(1)
                        cel(0)
                        setCycle(End self)
                    )
                )(else
                    = register 7
                    = state (+ state 2)
                    = ticks 1
                )
            )
            (case 7
                = cycles 2
            )
            (case 8
                (houseDoor:
                    loop(2)
                    cel(0)
                )
                = cycles 2
            )
            (case 9
                (send gKq6Messager:say(1 0 register 0 self))
            )
            (case 10
                (send client:setScript(rmEndofScriptsScr))
            )
        )
    )

)
(instance rmGiveRoseScr of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gEgo:put(38 gArrayScriptGetValue))
                (send gKq6:handsOff())
                (send (ScriptID(10 0)):setIt(128))
                (if (proc913_1(37))
                    = register 20
                )(else
                    = register 19
                    (send gKq6:givePoints(2))
                    proc913_2(47)
                )
                (beauty:setScript(0))
                (send gKq6Messager:say(6 71 register 1 self))
            )
            (case 1
                (if (== register 19)
                    (send gKq6Messager:say(6 71 register 2 self))
                )(else
                    (self:cue())
                )
            )
            (case 2
                (send gEgo:
                    setSpeed(6)
                    view(251)
                    loop(0)
                    cel(0)
                    posn(250 154)
                    normal(0)
                    setCycle(CT 4 1 self)
                )
            )
            (case 3
                (beauty:
                    view(251)
                    loop(1)
                    cel(0)
                    setCycle(CT 3 1 self)
                )
            )
            (case 4
                (beauty:setCycle(End self))
                (send gEgo:cel(5))
            )
            (case 5
                (send gEgo:
                    reset(0)
                    setSpeed(6)
                    posn((beauty:approachX) (beauty:approachY))
                )
                = seconds 2
            )
            (case 6
                (beauty:
                    loop(2)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 7
                (send gKq6Messager:
                    say(6 71 register
                        (if (== register 19)
                            3
                        )(else
                            2
                        )
 self)
                    oneOnly(0)
                )
            )
            (case 8
                (beauty:setScript(roseTendingScr))
                (send gKq6:handsOn())
                (self:dispose())
            )
        )
    )

)
(instance roseTendingScr of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send client:
                    view(251)
                    loop(4)
                    cel(0)
                )
                = cycles 1
            )
            (case 1
                = seconds Random(2 5)
            )
            (case 2
                (send client:setCycle(End self))
            )
            (case 3
                = seconds Random(2 5)
            )
            (case 4
                (send client:setCycle(Beg self))
            )
            (case 5
                = state 0
                = cycles 1
            )
        )
    )

)
(instance turnScr of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                0
            )
            (case 1
                = register 1
                (send gEgo:setHeading(register self))
            )
            (case 2
                (self:dispose())
            )
        )
    )

)
(instance rmGiveRingScr of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gEgo:put(37))
                (send gKq6:handsOff())
                (send gKq6:givePoints(2))
                (beauty:
                    setScript(0)
                    setPri(2)
                    view(252)
                    posn(290 158)
                    setHeading(270 self)
                )
                = register 0
            )
            (case 1
                (roomConv:
                    add(-1 6 69 10 1)
                    add(-1 6 69 10 2)
                    add(-1 6 69 10 3)
                    add(-1 6 69 10 4)
                    add(-1 6 69 10 5)
                    add(-1 6 69 10 6)
                    add(-1 6 69 10 7)
                    add(-1 6 69 10 8)
                    add(-1 6 69 10 9)
                    add(-1 6 69 10 10)
                    add(-1 6 69 10 11)
                    add(-1 6 69 10 12)
                    add(-1 6 69 10 13)
                    add(-1 6 69 10 14)
                    add(-1 6 69 10 15)
                    init(self)
                )
            )
            (case 2
                (beauty:
                    view(252)
                    setCycle(Walk)
                    setMotion(MoveTo 147 122 self)
                )
                (self:setScript(turnScr 0 90))
                (send gEgo:setMotion(MoveTo 121 154 turnScr))
            )
            (case 3
                (beauty:hide())
                (send global105:
                    number(906)
                    loop(1)
                    play()
                )
                (gate:
                    view(253)
                    loop(1)
                    cel(0)
                    setCycle(CT 5 1 self)
                )
            )
            (case 4
                (gate:setCycle(End))
                (beauty:
                    show()
                    setPri(-1)
                    posn(110 131)
                    setMotion(MoveTo 159 158 self)
                )
            )
            (case 5
                (if (not (turnScr:register))
                    (turnScr:caller(self))
                )(else
                    = cycles 2
                )
            )
            (case 6
                (beauty:loop(1))
                (send gEgo:loop(0))
                = cycles 2
            )
            (case 7
                (roomConv:
                    add(-1 6 69 10 16)
                    add(-1 6 69 10 17)
                    add(-1 6 69 10 18)
                    init(self)
                )
            )
            (case 8
                (send gEgo:
                    normal(0)
                    setSpeed(6)
                    view(253)
                    loop(10)
                    posn(127 157)
                    setCycle(CT 4 1 self)
                )
            )
            (case 9
                (beauty:
                    view(253)
                    loop(0)
                    cel(0)
                    posn(158 157)
                    setCycle(CT 3 1 self)
                )
            )
            (case 10
                (beauty:setCycle(End self))
                (send gEgo:setCycle(End self))
            )
            (case 11
                0
            )
            (case 12
                (send gKq6Messager:say(6 69 10 19 self))
            )
            (case 13
                (beauty:
                    view(252)
                    setCycle(Walk)
                    cycleSpeed(5)
                    moveSpeed(5)
                    setMotion(MoveTo 320 180)
                )
                (send gEgo:
                    reset(0)
                    posn(121 154)
                    setSpeed(9)
                    setMotion(MoveTo 300 190 self)
                )
                = ticks 60
            )
            (case 14
                (houseDoor:
                    view(255)
                    loop(2)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 15
                (send gKq6Messager:say(6 69 10 20 self))
            )
            (case 16
                = cycles 10
            )
            (case 17
                (send gKq6Messager:say(6 69 10 21 self))
            )
            (case 18
                (send global102:fade())
                (send global2:newRoom(540))
            )
        )
    )

)
(instance rmEndofScriptsScr of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (houseDoor:
                    noun(19)
                    view(255)
                    loop(0)
                    cel((houseDoor:lastCel()))
                    setCycle(Beg houseDoor)
                )
                (send client:
                    posn(174 97)
                    loop(7)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 1
                (send client:
                    setLoop(8)
                    posn(189 85)
                    setCycle(Walk)
                    setMotion(MoveTo 216 66 self)
                )
            )
            (case 2
                (houseDoor:setCycle(End self))
                (send global105:
                    number(901)
                    loop(1)
                    play()
                )
            )
            (case 3
                (send client:
                    setLoop(-1)
                    loop(9)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 4
                (houseDoor:setCycle(Beg self))
            )
            (case 5
                (send global105:
                    number(902)
                    loop(1)
                    play()
                )
                proc913_2(59)
                (send client:dispose())
            )
        )
    )

)
(instance useFluteOnBeautyScr of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gKq6:handsOff())
                = register localproc_14a9()
                (if (<> register 11)
                    ++state
                )
                = cycles 2
            )
            (case 1
                (self:setScript(ScriptID(85) self))
            )
            (case 2
                (switch (register)
                    (case 11
                        (send gKq6Messager:say(1 31 0 0 self 0))
                    )
                    (case 10
                        (send gKq6Messager:say(6 31 12 1 self))
                    )
                    (default
                        ++state
                        (send gKq6Messager:say(6 31 register 0 self))
                    )
                )
            )
            (case 3
                (send gKq6Messager:say(
                    (if (== register 10)
                        6
                    )(else
                        2
                    )
 31 register 0 self))
            )
            (case 4
                (send gKq6:handsOn())
                (self:dispose())
            )
        )
    )

)
(instance giveAllScr of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gKq6:handsOff())
                = register localproc_14a9()
                (send gKq6Messager:say(6 0
                    (if (== register 12)
                        10
                    )(else
                        register
                    )
 1 self))
            )
            (case 1
                (if (<> register 11)
                    (send gKq6Messager:say(6 0 register
                        (if (== register 12)
                            1
                        )(else
                            2
                        )
 self))
                )(else
                    = cycles 2
                )
            )
            (case 2
                (send gKq6:handsOn())
                (self:dispose())
            )
        )
    )

)
(instance scriptToBeIgnored of Script
    (properties)

    (method (changeState newState)
        (switch (= state newState)
            (case 0
                (send gKq6:handsOff())
                (send client:
                    view(255)
                    loop(0)
                    cel(0)
                )
                = cycles 2
            )
            (case 1
                (send client:setCycle(End self))
            )
            (case 2
                = cycles 2
            )
            (case 3
                (send client:
                    view(257)
                    loop(0)
                    cel(0)
                    setCycle(End self)
                )
            )
            (case 4
                = cycles 2
            )
            (case 5
                (send client:
                    loop(1)
                    cel(0)
                    setCycle(Fwd)
                )
                = ticks 300
            )
            (case 6
                (send client:
                    loop(0)
                    cel(10)
                    setCycle(Beg self)
                )
            )
            (case 7
                = cycles 2
            )
            (case 8
                (send client:
                    view(255)
                    loop(0)
                    cel(3)
                    setCycle(Beg self)
                )
            )
            (case 9
                (send client:
                    view(250)
                    loop(1)
                    cel(0)
                )
                (send gKq6:handsOn())
                (self:dispose())
            )
        )
    )

)
(instance beauty of Actor
    (properties
        x 214
        y 81
        noun 6
        sightAngle 45
        view 252
        signal $5000
    )

    (method (init param1 param2)
        (super:init(rest param2))
        (if (param1)
            (self:
                view(251)
                posn(285 156)
                loop(4)
                setPri(5)
                approachX(247)
                approachY(153)
                approachVerbs(2 71)
                setScale(Scaler 100 67 153 109)
                setScript(roseTendingScr)
            )
        )(else
            (self:setCycle(Walk))
        )
    )


    (method (doVerb theVerb)
        (if (proc999_5(theVerb 42 27 28 7 32 12 65 33) and localproc_149a())
            (send gKq6Messager:say(noun theVerb 18))
        )(else
            (if (proc999_5(theVerb 57 58 59 60 96 43 56) and localproc_149a())
                (send gKq6Messager:say(noun 43
                    (if (proc913_0(37))
                        10
                    )(else
                        12
                    )
))
            )(else
                (if (proc999_5(theVerb 66 70) and localproc_149a())
                    (send gKq6Messager:say(noun 66
                        (if (proc913_0(37))
                            10
                        )(else
                            12
                        )
))
                )(else
                    (if (== theVerb 31)
                        (send global2:setScript(useFluteOnBeautyScr))
                    )(else
                        (if (proc999_5(theVerb 74 73 55) and localproc_149a())
                            (send gKq6Messager:say(noun 55 18))
                        )(else
                            (if ((== theVerb 71) and localproc_149a())
                                (send global2:setScript(rmGiveRoseScr))
                            )(else
                                (if (== theVerb 69)
                                    (if (proc913_0(37))
                                        (send global2:setScript(rmGiveRingScr))
                                    )(else
                                        (send gKq6Messager:say(noun theVerb 12))
                                    )
                                )(else
                                    (if (== theVerb 2)
                                        (send gKq6Messager:say(noun theVerb
                                            (if (localproc_149a())
                                                (if (proc913_0(37))
                                                    (+ 22
                                                    (if (< local0 3)
                                                        ++local0
                                                    )(else
                                                        local0
                                                    )
)
                                                )(else
                                                    (if (proc913_0(47))
                                                        14
                                                    )(else
                                                        13
                                                    )
                                                )
                                            )(else
                                                11
                                            )
))
                                        proc913_1(47)
                                    )(else
                                        (if (== theVerb 1)
                                            (send gKq6Messager:say(noun theVerb
                                                (if (proc913_1(70))
                                                    (if (proc913_0(37))
                                                        10
                                                    )(else
                                                        9
                                                    )
                                                )(else
                                                    21
                                                )
))
                                        )(else
                                            (if (== theVerb 5)
                                                (send gKq6Messager:say(noun theVerb
                                                    (if (localproc_149a())
                                                        18
                                                    )(else
                                                        11
                                                    )
))
                                            )(else
                                                (send global2:setScript(giveAllScr))
                                            )
                                        )
                                    )
                                )
                            )
                        )
                    )
                )
            )
        )
    )

)
(instance gate of Prop
    (properties
        x 118
        y 108
        noun 7
        sightAngle 90
        view 250
        signal $4000
    )

    (method (doVerb theVerb param2)
        (if (== theVerb 2)
            ++local4
        )
        (super:doVerb(theVerb rest param2))
    )

)
(instance houseDoor of Prop
    (properties
        x 221
        y 68
        noun 19
        sightAngle 90
        view 250
        loop 1
        priority 1
        signal $0010
    )

    (method (doVerb theVerb param2)
        (if (((== local4 3) and (== local3 7)) and (== theVerb 2))
            = local4 0
            = local3 0
            (self:setScript(scriptToBeIgnored))
        )(else
            (super:doVerb(theVerb rest param2))
        )
    )


    (method (cue)
        (self:
            view(250)
            loop(1)
            cel(0)
        )
        (send global105:
            number(902)
            loop(1)
            play()
        )
    )

)
(instance leaves of Prop
    (properties
        x 60
        y 181
        view 256
        priority 15
        signal $5010
    )

    (method (onMe)
        return 0
    )

)
(instance featureToBeIgnored of Feature
    (properties
        x 100
        y 320
        noun 3
        nsLeft 3
        nsBottom 7
        nsRight 9
    )

    (method (init param1)
        (super:init(rest param1))
        = sightAngle 26505
    )


    (method (doVerb theVerb param2)
        (if (== local4 3)
            (switch (theVerb)
                (case 5
                    = local3 (| local3 $0001)
                )
                (case 2
                    = local3 (| local3 $0002)
                )
                (case 1
                    = local3 (| local3 $0004)
                )
            )
        )
        (super:doVerb(theVerb rest param2))
    )

)
(instance palmTrees of Feature
    (properties
        noun 15
        onMeCheck $0004
    )
)
(instance houseRoses of Feature
    (properties
        noun 22
        onMeCheck $1000
    )
)
(instance genericFeatures of Feature
    (properties
        sightAngle 40
    )

    (method (onMe param1)
        (var temp0)
        = noun
            (switch (= temp0 OnControl(4 (send param1:x) (send param1:y)))
                (case 2
                    8
                )
                (case 1024
                    21
                )
                (case 16
                    12
                )
                (case 32
                    11
                )
                (case 64
                    17
                )
                (case 128
                    14
                )
                (case 256
                    13
                )
                (case 512
                    18
                )
                (default
                    0
                )
            )
    )

)

Can you help me figure out what would trigger this view?



Offline Cloudee1

Re: King's Quest 6 (CD) Easter Egg? (Help Needed)
« Reply #1 on: July 24, 2015, 08:09:15 AM »
So the view is of the prop instance houseDoor and is triggered... it looks like when you talk (verb 2) to the door... after two local variables have also been set

Code: [Select]
    (method (doVerb theVerb param2)
        (if (((== local4 3) and (== local3 7)) and (== theVerb 2))
            = local4 0
            = local3 0
            (self:setScript(scriptToBeIgnored))
        )(else
            (super:doVerb(theVerb rest param2))
        )
    )

It appears as though local3 is only changed when you click walk (verb 3) on this feature which I am not quite sure where it actually is... after local4 has been set to 3

Code: [Select]
(instance featureToBeIgnored of Feature
    (properties
        x 100
        y 320
        noun 3
        nsLeft 3
        nsBottom 7
        nsRight 9
    )

    (method (init param1)
        (super:init(rest param1))
        = sightAngle 26505
    )


    (method (doVerb theVerb param2)
        (if (== local4 3)
            (switch (theVerb)
                (case 5
                    = local3 (| local3 $0001)
                )
                (case 2
                    = local3 (| local3 $0002)
                )
                (case 1
                    = local3 (| local3 $0004)
                )
            )
        )
        (super:doVerb(theVerb rest param2))
    )

)

local4, appears to be associated with the gate, increasing each time that you talk (verb 2) to it?
Code: [Select]
(instance gate of Prop
    (properties
        x 118
        y 108
        noun 7
        sightAngle 90
        view 250
        signal $4000
    )

    (method (doVerb theVerb param2)
        (if (== theVerb 2)
            ++local4
        )
        (super:doVerb(theVerb rest param2))
    )

)

So you figure out where featureToBeIgnored is... and there you go
Halloween Competition Brass Lantern Prop Competition Groundhog Day Competition

Offline OmerMor

Re: King's Quest 6 (CD) Easter Egg? (Help Needed)
« Reply #2 on: July 24, 2015, 08:57:39 AM »
Thanks Cloudee!

So you figure out where featureToBeIgnored is... and there you go

So where is it? IIUC, it is located outside the screen borders (100,320).

Offline troflip

Re: King's Quest 6 (CD) Easter Egg? (Help Needed)
« Reply #3 on: July 24, 2015, 11:48:53 AM »
By default, the onMe() method actually uses nsLeft/Bottom/Right/Top in order to detect if something is "onMe". The x/y properties are used to make the ego face a particular direction when interacting with it.

So it seems like clicking in this box should activate it: (3, 0) - (9, 7). Basically near the top left of the screen.

My confusion is how does the house door get to where it needs to be? Its default position is (221, 68), which is on the main wall of the house, which doesn't look right at all (haven't played the game, but if I had to guess, it's down on the bottom right along hte path?)
« Last Edit: July 24, 2015, 11:51:24 AM by troflip »
Check out my website: http://icefallgames.com
Groundhog Day Competition

Offline MusicallyInspired

Re: King's Quest 6 (CD) Easter Egg? (Help Needed)
« Reply #4 on: July 24, 2015, 11:58:54 AM »
The house door is on the house in the middle of the screen. 221, 68 looks like the right coordinates. I guess you're confusing x and y values?
Brass Lantern Prop Competition

Offline troflip

Re: King's Quest 6 (CD) Easter Egg? (Help Needed)
« Reply #5 on: July 24, 2015, 12:13:03 PM »
Oh, no, I was confusing the loops. House door is loop 1, now I get it. I was looking at the gate.

Check out my website: http://icefallgames.com
Groundhog Day Competition

Offline Cloudee1

Re: King's Quest 6 (CD) Easter Egg? (Help Needed)
« Reply #6 on: July 24, 2015, 02:09:14 PM »
So I am not sure how I got this "It appears as though local3 is only changed when you click walk (verb 3)"

As I look at it again, if local4 = 3 ... which we get to by clicking talk (I think lol) on the gate 3 times then it checks the verb used on the ignore feature box

Code: [Select]
(method (doVerb theVerb param2)
        (if (== local4 3)
            (switch (theVerb)
                (case 5
                    = local3 (| local3 $0001)
                )
                (case 2
                    = local3 (| local3 $0002)
                )
                (case 1
                    = local3 (| local3 $0004)
                )
            )
        )
        (super:doVerb(theVerb rest param2))
    )


Halloween Competition Brass Lantern Prop Competition Groundhog Day Competition

Offline lskovlun

Re: King's Quest 6 (CD) Easter Egg? (Help Needed)
« Reply #7 on: July 24, 2015, 02:31:11 PM »
Very obscure - nice find. So you need to click talk on the gate three times, then three different verbs on that feature, then finally talk on the door? Hmm, looks like you're going to have a problem with the feature - it seems to be obscured by the icon bar. It's easy to trigger (i.e. cheat) with ScummVM though.

Offline OmerMor

Re: King's Quest 6 (CD) Easter Egg? (Help Needed)
« Reply #8 on: July 24, 2015, 02:43:24 PM »
So with your help, I finally nailed it:


 ;D

lskovlum: it's not obscured by the icon bar - the icon bar is automatically hidden.
« Last Edit: July 24, 2015, 02:45:47 PM by OmerMor »

Offline troflip

Re: King's Quest 6 (CD) Easter Egg? (Help Needed)
« Reply #9 on: July 24, 2015, 02:53:20 PM »
hahaha, that's awesome!
Check out my website: http://icefallgames.com
Groundhog Day Competition


SMF 2.0.14 | SMF © 2017, Simple Machines
Simple Audio Video Embedder

Page created in 0.146 seconds with 24 queries.