on master help sign in
Mario can be fully reset to initial state.
commitd1b39891c4c56a783a5b64e091e920344fe3fd13 authorLaszlo Pandy <laszlo.pandy@prezi.com> dateFri 19 Jul 2013, 11:31 (13 years ago) parente884670
2 files changed+23−15
libraries/Native/Signal/Time.js+1−1 runtime/Debugger.js+22−14
libraries/Native/Signal/Time.js+1−1
@@ -24,7 +24,7 @@ Elm.Native.Time.make = function(elm) {
2424 var timeoutID = 0;
2525 function f(isOn, t) {
2626 if (isOn) {
27− timeoutID = setTimeout(tick(!wasOn && isOn), msPerFrame);
27+ timeoutID = elm.runDelayed(tick(!wasOn && isOn), msPerFrame);
2828 } else if (wasOn) {
2929 clearTimeout(timeoutID);
3030 }
runtime/Debugger.js+22−14
@@ -60,6 +60,7 @@ function debuggerInit(module, elm) {
6060 function resetProgram() {
6161 clearAsyncEvents();
6262 restoreProgramState(allNodes, initialProgramState);
63+ redrawGraphics();
6364 }
6465
6566 function startRecording() {
@@ -93,21 +94,24 @@ function debuggerInit(module, elm) {
9394 }
9495 }
9596
96− var moduleRetValue = module(elm);
97+ function redrawGraphics() {
98+ var graphicsFoldp = moduleRetValue.main.kids[0];
99+ graphicsFoldp.recv(Date.now(), true, moduleRetValue.main.id);
100+ }
97101
98− allNodes = flattenNodes(elm.inputs);
99− initialProgramState = saveProgramState(allNodes);
102+ var wrappedElm = {
103+ notify: wrapNotify,
104+ runDelayed: wrapRunDelayed,
105+ node: elm.node,
106+ display: elm.display,
107+ id: elm.id,
108+ addListener: elm.addListener,
109+ inputs: elm.inputs
110+ };
111+
112+ var moduleRetValue = module(wrappedElm);
100113
101− var debugElm = {
102− elm: {
103− notify: wrapNotify,
104− runDelayed: wrapRunDelayed,
105− node: elm.node,
106− display: elm.display,
107− id: elm.id,
108− addListener: elm.addListener,
109− inputs: elm.inputs
110− },
114+ var elmDebugger = {
111115 moduleRetValue: moduleRetValue,
112116
113117 // debugger functions
@@ -115,7 +119,11 @@ function debuggerInit(module, elm) {
115119 stopRecording: stopRecording,
116120 reset: resetProgram
117121 };
118− return debugElm;
122+
123+ allNodes = flattenNodes(wrappedElm.inputs);
124+ initialProgramState = saveProgramState(allNodes);
125+
126+ return elmDebugger;
119127};
120128
121129