Rooms Interaction Model Code

Cast: Internal - Script 1: startup

on startmovie global lastsprite, allrooms, iosum iosum = "" allrooms = [] lastsprite = 0 createroomsfrom(member("RIdata").text) -- setuprooms end startmovie on setuprooms -- this function is a precursor to createroomsfrom. createroomsfom now does this job in a more general way. this funtion is not used. global allrooms allrooms = [] -- chalk room - 3 states temproom = new(script "room - randomstate", "chalk") -- chalk room state 1 temproomstate = new(script "room state", "chalk brush") tempsoundobject = new(script "sound object", "chalk soundtrack - chalk brush") temproomstate.soundObjects.add(tempsoundobject) tempsoundobject = VOID tempcursorexplantion = "Horizontal: normal. Vertical: space effect" tempintobj = new(script "interactive obj", "default", "chalk brush", tempcursorexplantion, "rect(0, 0, 320, 240)") tempcursoraction = new(script "cursor action", "move", "visual", "smudge") tempintobj.cursorActions.add(tempcursoraction) tempcursoraction = VOID tempcursoraction = new(script "cursor action", "click", "sound", "chalk clip") tempintobj.cursorActions.add(tempcursoraction) tempcursoraction = VOID temproomstate.interactiveObjects.add(tempintobj) tempintobj = VOID tempintobj = new(script "interactive obj", "window", "chalk brush", tempcursorexplantion, "rect(93, 59, 111, 84)") tempcursoraction = new(script "cursor action", "holdover", "state change", "chalk piece") tempintobj.cursorActions.add(tempcursoraction) tempcursoraction = VOID temproomstate.interactiveObjects.add(tempintobj) tempintobj = VOID tempintobj = new(script "interactive obj", "plug", "chalk brush", tempcursorexplantion, "rect(221, 163, 243, 186)") tempcursoraction = new(script "cursor action", "click", "room change", "hall of time") tempintobj.cursorActions.add(tempcursoraction) tempcursoraction = VOID temproomstate.interactiveObjects.add(tempintobj) tempintobj = VOID tempintobj = new(script "interactive obj", "hole", "chalk brush", tempcursorexplantion, "rect(134, 176, 180, 206)") tempcursoraction = new(script "cursor action", "click", "room change", "don't know") tempintobj.cursorActions.add(tempcursoraction) tempcursoraction = VOID temproomstate.interactiveObjects.add(tempintobj) tempintobj = VOID temproom.roomStates.add(temproomstate) temproomstate = VOID -- chalk room state 2 temproomstate = new(script "room state", "flashlight") temproom.roomStates.add(temproomstate) tempsoundobject = new(script "sound object", "chalk soundtrack - flashlight") temproomstate.soundObjects.add(tempsoundobject) tempsoundobject = VOID tempintobj = new(script "interactive obj", "default", "flashlight", tempcursorexplantion, "rect(0, 0, 320, 240)") temproomstate.interactiveObjects.add(tempintobj) tempcursoraction = new(script "cursor action", "click", "sound", "cymbal crash") tempintobj.cursorActions.add(tempcursoraction) tempcursoraction = VOID tempcursoraction = new(script "cursor action", "click", "visual", "text display") tempintobj.cursorActions.add(tempcursoraction) tempcursoraction = VOID tempintobj = VOID tempintobj = new(script "interactive obj", "window", "flashlight", tempcursorexplantion, "rect(93, 59, 111, 84)") temproomstate.interactiveObjects.add(tempintobj) tempcursoraction = new(script "cursor action", "holdover", "state change", "??") tempintobj.cursorActions.add(tempcursoraction) tempcursoraction = VOID tempintobj = VOID temproomstate = VOID -- chalk room state 3 temproomstate = new(script "room state", "chalk piece") temproom.roomStates.add(temproomstate) tempsoundobject = new(script "sound object", "chalk soundtrack - piece") temproomstate.soundObjects.add(tempsoundobject) tempsoundobject = VOID tempintobj = new(script "interactive obj", "default", "chalk piece", tempcursorexplantion, "rect(0, 0, 320, 240)") temproomstate.interactiveObjects.add(tempintobj) tempcursoraction = new(script "cursor action", "click", "sound", "??") tempintobj.cursorActions.add(tempcursoraction) tempcursoraction = VOID tempcursoraction = new(script "cursor action", "click", "visual", "??") tempintobj.cursorActions.add(tempcursoraction) tempcursoraction = VOID tempintobj = VOID tempintobj = new(script "interactive obj", "window", "chalk piece", tempcursorexplantion, "rect(93, 59, 111, 84)") temproomstate.interactiveObjects.add(tempintobj) tempcursoraction = new(script "cursor action", "holdover", "state change", "??") tempintobj.cursorActions.add(tempcursoraction) tempcursoraction = VOID tempintobj = VOID tempintobj = new(script "interactive obj", "wall icon 1", "chalk piece", tempcursorexplantion, "rect(17, 19, 62, 75)") temproomstate.interactiveObjects.add(tempintobj) tempcursoraction = new(script "cursor action", "click", "room change", "Plug?") tempintobj.cursorActions.add(tempcursoraction) tempcursoraction = VOID tempintobj = VOID tempintobj = new(script "interactive obj", "wall icon 2", "chalk piece", tempcursorexplantion, "rect(18, 98, 90, 213)") temproomstate.interactiveObjects.add(tempintobj) tempcursoraction = new(script "cursor action", "click", "room change", "TV") tempintobj.cursorActions.add(tempcursoraction) tempcursoraction = VOID tempintobj = VOID temproomstate = VOID temproom.changestate("chalk brush") -- temproom.printOut() allrooms.add(temproom) -- allrooms[1].printOut() temproom = VOID -- allrooms[1].printOut() -- waiting room - 1 state temproom = new(script "room", "waiting") -- waiting room state 1 temproomstate = new(script "room state", "") temproom.roomStates.add(temproomstate) tempsoundobject = new(script "sound object", "waiting room soundtrack") temproomstate.soundObjects.add(tempsoundobject) tempsoundobject = VOID tempcursorexplantion = "" tempintobj = new(script "interactive obj", "default", "pointer", tempcursorexplantion, "rect(0, 0, 320, 240)") temproomstate.interactiveObjects.add(tempintobj) tempintobj = VOID tempintobj = new(script "interactive obj", "digital clock", "index finger pointing up", tempcursorexplantion, "rect(142, 115, 189, 136)") temproomstate.interactiveObjects.add(tempintobj) tempcursoraction = new(script "cursor action", "click", "room change", "??") tempintobj.cursorActions.add(tempcursoraction) tempcursoraction = VOID tempintobj = VOID tempintobj = new(script "interactive obj", "analog clock right", "index finger pointing right", tempcursorexplantion, "rect(230, 144, 300, 192)") temproomstate.interactiveObjects.add(tempintobj) tempcursoraction = new(script "cursor action", "click", "room change", "??") tempintobj.cursorActions.add(tempcursoraction) tempcursoraction = VOID tempintobj = VOID tempintobj = new(script "interactive obj", "analog clock left", "index finger pointing left", tempcursorexplantion, "rect(52, 108, 114, 163)") temproomstate.interactiveObjects.add(tempintobj) tempcursoraction = new(script "cursor action", "click", "room change", "??") tempintobj.cursorActions.add(tempcursoraction) tempcursoraction = VOID tempintobj = VOID tempintobj = new(script "interactive obj", "chair", "index finger pointing down", tempcursorexplantion, "rect(152, 151, 177, 193)") temproomstate.interactiveObjects.add(tempintobj) tempcursoraction = new(script "cursor action", "click", "room change", "??") tempintobj.cursorActions.add(tempcursoraction) tempcursoraction = VOID tempintobj = VOID temproomstate = VOID temproom.changestatenumeric(1) allrooms.add(temproom) temproom = VOID repeat with aroom in allrooms aroom.printOut() end repeat end setuprooms

Cast: Internal - Script 24: initialize a room

on prepareFrame me global startroom -- alert "got room... setting up" && startroom setuproom(startroom) end

Cast: Internal - Script 25:handle display info

on exitFrame me global currentroom, lastsprite, cursoractionlist, iosum currentsprite = the rollover if currentsprite > 50 and currentsprite <> lastsprite then -- put currentsprite if lastsprite <> 0 then -- reset previous hilites --member("room states display").line[lastsprite-50].color = rgb(0, 0, 0) member("intobj display").line[lastsprite-50].color = rgb(0, 0, 0) member("cursors display").line[lastsprite-50].color = rgb(0, 0, 0) member("cursor actions display").line[cursoractionlist.getAt(lastsprite-50)..cursoractionlist.getAt(lastsprite-50+1)-1].color = rgb(0, 0, 0) member("cursors explanation display").line[lastsprite-50].color = rgb(0, 0, 0) iosum = "" end if lastsprite = currentsprite thisstate = currentroom.roomStates.getat(currentroom.currentstate) --member("room states display").line[currentsprite-50].color = rgb(255, 0, 0) member("intobj display").line[currentsprite-50].color = rgb(255, 0, 0) member("cursor actions display").line[cursoractionlist.getAt(currentsprite-50)..cursoractionlist.getAt(currentsprite-50+1)-1].color = rgb(255, 0, 0) member("cursors display").line[currentsprite-50].color = rgb(255, 0, 0) member("cursors explanation display").line[currentsprite-50].color = rgb(255, 0, 0) iosum = member("intobj display").line[currentsprite-50] & return & \ member("cursor actions display").line[cursoractionlist.getAt(currentsprite-50)..cursoractionlist.getAt(currentsprite-50+1)-1] & return & \ member("cursors display").line[currentsprite-50] & return & \ member("cursors explanation display").line[currentsprite-50] else if currentsprite < 51 and lastsprite <> 0 then -- reset previous intobj hilite --member("room states display").line[lastsprite-50].color = rgb(0, 0, 0) member("intobj display").line[lastsprite-50].color = rgb(0, 0, 0) member("cursors display").line[lastsprite-50].color = rgb(0, 0, 0) member("cursor actions display").line[cursoractionlist.getAt(lastsprite-50)..cursoractionlist.getAt(lastsprite-50+1)-1].color = rgb(0, 0, 0) member("cursors explanation display").line[lastsprite-50].color = rgb(0, 0, 0) iosum = "" lastsprite = 0 end if member("io summary display").text = iosum go to the frame end

Cast: Internal - Script 28: Create Rooms

on createroomsfrom toparse olddelimiter = the itemDelimiter the itemDelimiter = tab repeat with l = 1 to the number of lines in toparse if (line l of toparse).char.count = 0 then next repeat room = item 1 of line l of toparse roomstateN = item 2 of line l of toparse Cexplain = item 5 of line l of toparse IOname = item 3 of line l of toparse Cdescri = item 4 of line l of toparse objectrect = item 6 of line l of toparse Caction = item 7 of line l of toparse CeffectT = item 8 of line l of toparse Ceffect = item 9 of line l of toparse roomP = doroom(room) roomStateP = doroomstate(roomP, roomstateN, Cexplain) IOP = doIO(roomStateP, IOname, Cdescri, Cexplain, objectrect) tempCA = new(script "cursor action", Caction, CeffectT, Ceffect) IOP.cursorActions.add(tempCA) addoIO(roomStateP, IOP, IOname) addoroomstate(roomP, roomStateP, roomstateN) roomP.changestatenumeric(1) addroom(room, roomP) end repeat the itemDelimiter = olddelimiter end on doIO rsP, ioN, Cd, Cex, orect repeat with io in rsP.interactiveObjects if (ioN = io.intOname) then return io end if end repeat return new(script "interactive obj", ioN, Cd, Cex, value("rect("&orect&")")) end on addoIO rsP, ioP, ioN repeat with io in rsP.interactiveObjects if (ioN = io.intOname) then return io end if end repeat rsP.interactiveObjects.add(ioP) end on doroomstate rP, rsN repeat with rs in rP.roomStates if (rsN = rs.RSname) then return rs end if end repeat return new(script "room state", rsN) end on addoroomstate rP, rsP, rsN repeat with rs in rP.roomStates if (rsN = rs.RSname) then return rs end if end repeat rP.roomStates.add(rsP) end on doroom room global allrooms repeat with r in allrooms if (room = r.roomname) then return r end if end repeat return new(script "room", room) end on addroom room, rP global allrooms repeat with r in allrooms if (room = r.roomname) then return r end if end repeat allrooms.add(rP) -- alert "allrooms AR:" && allrooms end

Cast: Internal - Script 29: setup room

on setuproom(r) global allrooms, currentroom, cursoractionlist -- alert "setting up" && r member("rooms display").text = "" member("rooms display").color = rgb(0, 0, 0) i = 1 -- alert "allrooms SUR:" && allrooms repeat with aroom in allrooms member("rooms display").text = member("rooms display").text & aroom.roomname & return --alert "got this far" && aroom.roomname && r && aroom.roomname = r if aroom.roomname = r then currentroom = aroom roomtohilight = i end if i = i + 1 end repeat member("rooms display").line[roomtohilight].color = rgb(255, 0, 0) -- get room state member("room states display").text = "" member("room states display").color = rgb(0, 0, 0) -- alert "got this far" & currentroom -- alert "got this far" & currentroom.roomstates repeat with aroomstate in currentroom.roomstates -- alert member("room states display").text & aroomstate.RSname & return member("room states display").text = member("room states display").text & aroomstate.RSname & return end repeat -- alert currentroom.currentstate thisroomstatename = currentroom.roomstates.getAt(currentroom.currentstate).RSname -- if aroom.roomstates.getAt(currentstate) = aroomstate.RSname then thisroomstate = aroomstate member("room states display").line[currentroom.currentstate].color = rgb(255, 0, 0) aroomstate = currentroom.roomstates.getAt(currentroom.currentstate) -- alert "using state: " & thisroomstatename -- get room sound -- member("sounds display").text = "" repeat with ansoundobj in aroomstate.soundObjects member("sounds display").text = member("sounds display").text & ansoundobj.asound & return end repeat -- place interactive objects on stage intobjsprite = 51 cursoractionlist = [1] member("cursors display").text = "" member("cursor actions display").text = "" member("intobj display").text = "" member("cursors explanation display").text = "" repeat with aninterobj in aroomstate.interactiveObjects sprite(intobjsprite).visible = TRUE sprite(intobjsprite).rect = value(aninterobj.objectRectangle) member("intobj display").text = member("intobj display").text & aninterobj.intOname & return member("cursors display").text = member("cursors display").text & aninterobj.cursorDescription & return member("cursors explanation display").text = member("cursors explanation display").text & aninterobj.cursorExplanation & return if aninterobj.cursorActions.count = 0 then member("cursor actions display").text = member("cursor actions display").text & return cursoractionlist.add(cursoractionlist.getLast()+1) else cursoractionlist.add(cursoractionlist.getLast()+aninterobj.cursorActions.count) repeat with acursoraction in aninterobj.cursorActions member("cursor actions display").text = member("cursor actions display").text \ & acursoraction.action & ", " \ & acursoraction.effecttype & ", " \ & acursoraction.effect & return end repeat end if intobjsprite = intobjsprite + 1 end repeat repeat with i = intobjsprite to 65 sprite(i).visible = FALSE end repeat -- display cursor actions aroom = VOID aroomstate = VOID aninterobj = VOID updatestage end

Cast: Internal - Script 30: ask change room state

on mouseUp me global currentroom newroomstateindex = pointToLine(sprite the currentspritenum, the clickLoc) if sprite(the currentspritenum).member.text.line[newroomstateindex] <> "" then currentroom.changestatenumeric(newroomstateindex) -- member("room states display").color = rgb(0, 0, 0) -- updatestage -- member("room states display").line[newroomstateindex].color = rgb(255, 0, 0) -- updatestage setuproom(currentroom.roomname) end if end

Cast: Internal - Script 31

on prepareFrame me -- alert("setting up") global startroom -- alert string(externalParamCount()) repeat with epc = 1 to externalParamCount() -- alert externalParamName(epc) end repeat if externalParamName("sw1") = "sw1" then -- alert externalParamName("sw1") startroom = externalParamValue("sw1") else startroom = "chalk" end if -- alert startroom end

Cast: Internal - Script 32

on mouseUp me global currentroom, allrooms newroomindex = pointToLine(sprite the currentspritenum, the clickLoc) put the currentspritenum && the clickLoc && pointToLine(sprite the currentspritenum, the clickLoc) if sprite(the currentspritenum).member.text.line[newroomindex] <> "" then currentroom = allrooms[newroomindex] setuproom(currentroom.roomname) end if end

Cast: Display - Script 6

on exitFrame me repeat with i= 51 to 62 sprite(i).visible = false end repeat end  

Cast: object hierarchy - script 1: room

property roomStates property roomname property currentstate on new me, newroomname roomname = newroomname roomStates = [] return me end on printOut me put "******Room Description******" put "Room name: " & roomname & " >> " & me repeat with rs in roomStates printOut rs end repeat end me on changestatenumeric me, newstate currentstate = newstate end on changestate me, newstate put me.roomStates.count repeat with s = 1 to me.roomStates.count if newstate = me.roomStates.getat(s) then exit repeat end if end repeat currentstate = s-1 end on currentstate me return currentstate end

Cast: object hierarchy - script 2: randomstate

property roomStates property roomname property currentstate property ancestor on new me, newroomname roomname = newroomname roomStates = [] return me end on printOut me put "******Room Description - random state******" put "Room name: " & roomname & " >> " & me repeat with rs in roomStates printOut rs end repeat end me on currentstate me currentstate = random(count(roomStates)) return currentstate end on changestatenumeric me, newstate currentstate = newstate end on changestate me, newstate put me.roomStates.count repeat with s = 1 to me.roomStates.count if newstate = me.roomStates.getat(s) then exit repeat end if end repeat currentstate = s-1 end

Cast: object hierarchy - script 3: room state

property soundObjects property interactiveObjects property RSname on new me, roomstatename RSname = roomstatename soundObjects = [] interactiveObjects = [] return me end on printOut me put " Room State Name: " & RSname & " >> " & me repeat with so in soundObjects printOut so end repeat repeat with intob in interactiveObjects printOut intob end repeat end me

Cast: object hierarchy - script 4: sound object

property asound on new me, anewsound asound = anewsound return me end new on printOut me put " Sound Object: " & asound & " >> " & me end me

Cast: object hierarchy - script 5: interactive object

property intOname property cursorDescription property cursorExplanation property objectRectangle property cursorActions on new me, newintOname, newcursorDescription, newcursorExplanation, newobjectRectangle intOname = newintOname cursorDescription = newcursorDescription objectRectangle = newobjectRectangle cursorExplanation = newcursorExplanation cursorActions = [] return me end new on printOut me put " Interactive Object Name: " & intOname & " >> " & me put " Cursor Description: " & cursorDescription put " Cursor Explanation: " & cursorExplanation put " Object Rectangle: bbb" & string(objectRectangle) repeat with cursAct in cursorActions printOut cursAct end repeat end me

Cast: object hierarchy - script 6: cursor action

property action property effecttype property effect on new me, newaction, neweffecttype, neweffect action = newaction effecttype = neweffecttype effect = neweffect return me end new on printOut me put " >> " & me put " Cursor Action: " & action put " Cursor Effect Type: " & effecttype put " Cursor Effect: " & effect end me

Text Field Containing Interactive Object Data

anechoic_chamber default default pointer 0,0,320,240 over
anechoic_chamber default cube index finger pointing up 105,103,138,132 click visual cube moves forward
anechoic_chamber default cube index finger pointing up 105,103,138,132 click sound heartbeat
anechoic_chamber default cube index finger pointing up 105,103,138,132 over
anechoic_chamber default rod index finger pointing up 161,61,166,176 click visual rod moves forward
anechoic_chamber default rod index finger pointing up 161,61,166,176 click sound shrill pulse
anechoic_chamber default rod index finger pointing up 161,61,166,176 over
anechoic_chamber default sphere index finger pointing up 185,108,209,131 click visual sphere moves forward
anechoic_chamber default sphere index finger pointing up 185,108,209,131 click sound breathing
anechoic_chamber default sphere index finger pointing up 185,108,209,131 over
anechoic_chamber default wall plate 1 opening index finger pressing down 85,179,99,192 click room change music room
anechoic_chamber default wall plate 1 opening index finger pressing down 85,179,99,192 over
anechoic_chamber default wall plate 1 open hand 75,189,89,202 drag visual plate 1 moves revealing animated clouds
anechoic_chamber default wall plate 1 open hand 75,189,89,202 drag sound buhdist monestary story
anechoic_chamber default wall plate 1 open hand 75,189,89,202 over
anechoic_chamber default wall plate 2 opening index finger pointing up 205,45,218,58 click room change hall of time
anechoic_chamber default wall plate 2 opening index finger pointing up 205,45,218,58 over
anechoic_chamber default wall plate 2 open hand 195,55,208,68 drag visual plates 1 and 2 move revealing clouds and plug
anechoic_chamber default wall plate 2 open hand 195,55,208,68 drag sound buhdist monestary story
anechoic_chamber default wall plate 2 open hand 195,55,208,68 over
aquarium default default rotating_diver H: normal. V: space effect 0,0,320,240 over
aquarium default default rotating_diver H: normal. V: space effect 0,0,320,240 click visual glowing bubbles
aquarium default fish rotating_diver H: normal. V: space effect 22,137,56,161 move visual fish rotates with diver
aquarium default fish rotating_diver H: normal. V: space effect 22,137,56,161 move sound John Lily story
aquarium default motorcycle rotating_diver H: normal. V: space effect 151,91,176,111 move visual motorcycle rotates with diver
aquarium default motorcycle rotating_diver H: normal. V: space effect 151,91,176,111 move sound motorcycle story
aquarium default nun rotating_diver H: normal. V: space effect 207,115,232,132 move visual nun rotates with diver
aquarium default nun rotating_diver H: normal. V: space effect 207,115,232,132 move sound nun story
aquarium default plug hole rotating_diver H: normal. V: space effect 125,160,155,177 move visual aquarium floor shimmers revealing plug
aquarium default plug hole rotating_diver H: normal. V: space effect 125,160,155,177 click and hold room_change hall of time
chalk chalk brush default chalk brush H: normal. V: space effect 0,0,320,240 move visual smudge and reveal
chalk chalk brush hole in floor chalk brush H: normal. V: space effect 134,176,180,206 click room change music
chalk chalk brush wall icon - plug chalk brush H: normal. V: space effect 211,163,243,186 click room change hall of time
chalk chalk brush window chalk brush H: normal. V: space effect 93,59,111,84 holdover state change flashlight
chalk chalk piece default chalk piece H: normal. V: space effect 0,0,320,240 drag visual light trails
chalk chalk piece wall icon - plug chalk piece H: normal. V: space effect 17,19,62,75 click room change hall of time
chalk chalk piece wall icon - TV chalk piece H: normal. V: space effect 18,98,90,213 click room change cartoon
chalk chalk piece window chalk piece H: normal. V: space effect 93,59,111,84 holdover state change chalk piece
chalk flashlight default flashlight H: normal. V: space effect 0,0,320,240 click sound cymbal crash
chalk flashlight default flashlight H: normal. V: space effect 0,0,320,240 click - random state change flashlight - text - random
chalk flashlight default flashlight H: normal. V: space effect 0,0,320,240 click - random state change flashlight - plug
chalk flashlight default flashlight H: normal. V: space effect 0,0,320,240 click - random room change writing
chalk flashlight window flashlight H: normal. V: space effect 93,59,111,84 holdover state change chalk piece
chalk flashlight - plug default flashlight H: normal. V: space effect 0,0,320,240 click state change flashlight
chalk flashlight - plug plug flashlight H: normal. V: space effect 138,92,191,140 click room change hall of time
chalk flashlight - text - random default flashlight H: normal. V: space effect 0,0,320,240 click state change flashlight
music default default pointer 0,0,320,240 over
music default plug index finger pointing up multiple plugs floating down 45,175,266,239 click room change the_hall_of_time
music default plug index finger pointing up multiple plugs floating down 45,175,266,239 over
music default digital violin index finger pointing up 225,67,275,173 click state change DIGviolin
music default digital violin index finger pointing up 225,67,275,173 over
music default tape bow violin index finger pointing up 120,63,168,188 click state change TBviolin
music default tape bow violin index finger pointing up 120,63,168,188 over
music default viophonograph index finger pointing up 30,55,87,181 click state change viophonograph
music default viophonograph index finger pointing up 30,55,87,181 over
music default self-playing violin index finger pointing up 178,160,219,199 click state change SPviolin
music default self-playing violin index finger pointing up 178,160,219,199 over
music Spviolin default pointer 0,0,320,240 over
music Spviolin plug index finger pointing up multiple plugs floating down 45,175,266,239 click room change the_hall_of_time
music Spviolin plug index finger pointing up multiple plugs floating down 45,175,266,239 over
music Spviolin digital violin index finger pointing up 225,67,275,173 click state change DIGviolin
music Spviolin digital violin index finger pointing up 225,67,275,173 over
music Spviolin tape bow violin index finger pointing up 120,63,168,188 click state change TBviolin
music Spviolin tape bow violin index finger pointing up 120,63,168,188 over
music Spviolin viophonograph index finger pointing up 30,55,87,181 click state change viophonograph
music Spviolin viophonograph index finger pointing up 30,55,87,181 over
music Spviolin self-playing violin index finger pressing down 166, 140, 234, 236 over
music Spviolin self-playing violin index finger pointing up 166, 140, 234, 236 click and hold visual inside of violin is revealed
music Spviolin self-playing violin index finger pointing up 166, 140, 234, 236 click and hold sound random story - Dog Dream
music Spviolin self-playing violin index finger pointing up 166, 140, 234, 236 click and hold sound random story - Cage Interview
music DIGviolin default pointer 0,0,320,240 over
music DIGviolin button 1 index finger pressing down 243,98,247,101 click sound listen to my - speed 1
music DIGviolin button 1 index finger pressing down 243,98,247,101 over
music DIGviolin button 2 index finger pressing down 241,105,245,109 click sound listen to my - speed 2
music DIGviolin button 2 index finger pressing down 241,105,245,109 over
music DIGviolin button 3 index finger pressing down 246,113,249,115 click sound listen to my - speed 3
music DIGviolin button 3 index finger pressing down 246,113,249,115 over
music DIGviolin button 4 index finger pressing down 242,120,246,123 click sound listen to my - speed 4
music DIGviolin button 4 index finger pressing down 242,120,246,123 over
music DIGviolin button 5 index finger pressing down 248,125,251,128 click sound listen to my - speed 5
music DIGviolin button 5 index finger pressing down 248,125,251,128 over
music DIGviolin button 6 index finger pressing down 246,131,249,134 click sound listen to my - speed 6
music DIGviolin button 6 index finger pressing down 246,131,249,134 over
music DIGviolin button 7 index finger pressing down 247,138,250,141 click sound listen to my - speed 7
music DIGviolin button 7 index finger pressing down 247,138,250,141 over
music DIGviolin plug index finger pointing up multiple plugs floating down 45,175,266,239 click room change the_hall_of_time
music DIGviolin plug index finger pointing up multiple plugs floating down 45,175,266,239 over
music DIGviolin tape bow violin index finger pointing up 120,63,168,188 click state change TBviolin
music DIGviolin tape bow violin index finger pointing up 120,63,168,188 over
music DIGviolin viophonograph index finger pointing up 30,55,87,181 click state change viophonograph
music DIGviolin viophonograph index finger pointing up 30,55,87,181 over
music DIGviolin self-playing violin index finger pointing up 178,160,219,199 click state change SPviolin
music DIGviolin self-playing violin index finger pointing up 178,160,219,199 over
music TBviolin default pointer 0,0,320,240 over
music TBviolin bow 1 open hand 145,23,236,39 drag grab object bow across violin to play
music TBviolin bow 1 open hand 145,23,236,39 drag sound bow across violin to play
music TBviolin bow 1 open hand 145,23,236,39 over
music TBviolin bow 2 open hand 149,52,241,70 drag grab object bow across violin to play
music TBviolin bow 2 open hand 149,52,241,70 drag sound bow across violin to play
music TBviolin bow 2 open hand 149,52,241,70 over
music TBviolin plug index finger pointing up multiple plugs floating down 45,175,266,239 click room change the_hall_of_time
music TBviolin plug index finger pointing up multiple plugs floating down 45,175,266,239 over
music TBviolin digital violin index finger pointing up 225,67,275,173 click state change SPviolin
music TBviolin digital violin index finger pointing up 225,67,275,173 over
music TBviolin tape bow violin index finger pointing up 120,63,168,188 click state change TBviolin
music TBviolin tape bow violin index finger pointing up 120,63,168,188 over
music TBviolin viophonograph index finger pointing up 30,55,87,181 click state change viophonograph
music TBviolin viophonograph index finger pointing up 30,55,87,181 over
music TBviolin self-playing violin index finger pointing up 178,160,219,199 click state change SPviolin
music TBviolin self-playing violin index finger pointing up 178,160,219,199 over
music viophonograph default pointer 0,0,320,240 over
music viophonograph plug index finger pointing up multiple plugs floating down 45,175,266,239 click room change the_hall_of_time
music viophonograph plug index finger pointing up multiple plugs floating down 45,175,266,239 over
music viophonograph digital violin index finger pointing up 225,67,275,173 click state change SPviolin
music viophonograph digital violin index finger pointing up 225,67,275,173 over
music viophonograph tape bow violin index finger pointing up 120,63,168,188 click state change TBviolin
music viophonograph tape bow violin index finger pointing up 120,63,168,188 over
music viophonograph viophonograph index finger pressing down 36,132,78,168 drag sound speed of playback varies from low pitch at the left to normal at the right.
music viophonograph viophonograph index finger pressing down 36,132,78,168 drag visual vinyl spins
music viophonograph viophonograph index finger pressing down 36,132,78,168 over
music viophonograph self-playing violin index finger pointing up 178,160,219,199 click state change SPviolin
music viophonograph self-playing violin index finger pointing up 178,160,219,199 over
phone default default pointer revealing light 0,0,320,240 over
phone default bottom phone open hand revealing light 146,172,175,208 click room change love_line
phone default bottom phone open hand revealing light 146,172,175,208 over
phone default left phone open hand revealing light 46,80,95,160 click room change answering machine
phone default left phone open hand revealing light 46,26,195,145 over
phone default right phone open hand revealing light 218,24,280,225 click room change breakfast
phone default right phone open hand revealing light 218,24,280,225 over
phone default top phone open hand revealing light 117,53,152,94 click room change web
phone default top phone open hand revealing light 117,53,152,94 over
plug default default revealing_light H: space effect V: normal 0, 0, 320, 240 over
plug default book 1 revealing_light H: space effect V: normal 146, 23, 173, 57 click room_change writing
plug default book 1 revealing_light H: space effect V: normal 146, 23, 173, 57 over sound_volume book story
plug default book 2 revealing_light H: space effect V: normal 175, 142, 199, 172 click room_change writing
plug default book 2 revealing_light H: space effect V: normal 175, 142, 199, 172 over sound_volume book story
plug default book 3 revealing_light H: space effect V: normal 209, 163, 224, 188 click room_change writing
plug default book 3 revealing_light H: space effect V: normal 209, 163, 224, 188 over sound_volume book story
plug default cage 1 revealing_light H: space effect V: normal 111, 43, 144, 91 click room_change music
plug default cage 1 revealing_light H: space effect V: normal 111, 43, 144, 91 over sound_volume cage story
plug default cage 2 revealing_light H: space effect V: normal 191, 113, 207, 138 click room_change music
plug default cage 2 revealing_light H: space effect V: normal 191, 113, 207, 138 over sound_volume cage story
plug default cage 3 revealing_light H: space effect V: normal 221, 89, 232, 105 click room_change music
plug default cage 3 revealing_light H: space effect V: normal 221, 89, 232, 105 over sound_volume cage story
plug default questions 1 revealing_light H: space effect V: normal 33, 85, 85, 156 click room_change ouija
plug default questions 1 revealing_light H: space effect V: normal 33, 85, 85, 156 over sound_volume question story
plug default questions 2 revealing_light H: space effect V: normal 172, 184, 192, 216 click room_change ouija
plug default questions 2 revealing_light H: space effect V: normal 172, 184, 192, 216 over sound_volume question story
plug default questions 3 revealing_light H: space effect V: normal 191, 42, 209, 64 click room_change ouija
plug default questions 3 revealing_light H: space effect V: normal 191, 42, 209, 64 over sound_volume question story
plug default walking 1 revealing_light H: space effect V: normal 103, 173, 140, 218 click room_change shadow
plug default walking 1 revealing_light H: space effect V: normal 103, 173, 140, 218 over sound_volume walking story
plug default walking 2 revealing_light H: space effect V: normal 159, 71, 192, 109 click room_change shadow
plug default walking 2 revealing_light H: space effect V: normal 159, 71, 192, 109 over sound_volume walking story
plug default walking 3 revealing_light H: space effect V: normal 192, 193, 209, 217 click room_change shadow
plug default walking 3 revealing_light H: space effect V: normal 192, 193, 209, 217 over sound_volume walking story
waiting default default pointer 0,0,320,240
waiting default analog clock left index_finger_left 52,108,114,163 click room_change palm reader
waiting default analog clock right index_finger_right 230,144,300,192 click room_change ouija
waiting default chair index_finger_down 152,151,177,193 click room_change shadow
waiting default digital clock index_finger_pointing_up 142,115,189,136 click room_change psychiatrist
writing default default pointer 0,0,320,240
writing default bed index finger pointing up 193,157,226,192 over visual reveal a book
writing default bed index finger pointing up 193,157,226,192 click state change write and edit
writing default books index finger pointing up 41,172,64,209 over visual reveal books
writing default books index finger pointing up 41,172,64,209 click state change detective
writing default head index finger pointing up 169,80,209,124 over visual reveal TV
writing default head index finger pointing up 169,80,209,124 click state change TV
writing default window index finger pointing up 92,47,137,124 over visual reveal plug
writing default window index finger pointing up 92,47,137,124 click room change hall of time
writing detective default pointer 0,0,320,240
writing detective fin index finger pointing up 254,224,282,237 keyboard state change default
writing detective paper pointer 118,24,284,216 keyboard text on screen tells story in text
writing detective phone index finger pointing up 11,113,60,230 click sound story
writing TV default pointer 0,0,320,240
writing TV phone index finger pointing up 11,113,60,230 click sound random (3)
writing TV UNION index finger pointing up 203,3,236,15 click state change default