pxt-common-packages 9.4.5 → 9.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/built/common-sim.d.ts +3 -2
  2. package/built/common-sim.js +15 -1
  3. package/libs/accelerometer/built/debug/binary.js +8 -8
  4. package/libs/azureiot/built/debug/binary.js +461 -461
  5. package/libs/base/fixed.ts +6 -0
  6. package/libs/color/built/debug/binary.js +8 -8
  7. package/libs/color/colors.ts +11 -0
  8. package/libs/color-sensor/built/debug/binary.js +8 -8
  9. package/libs/controller/built/debug/binary.js +9098 -7849
  10. package/libs/controller---none/built/debug/binary.js +9052 -7803
  11. package/libs/core/built/debug/binary.js +2 -2
  12. package/libs/core---samd/built/debug/binary.js +8 -8
  13. package/libs/datalogger/built/debug/binary.js +63 -63
  14. package/libs/edge-connector/built/debug/binary.js +8 -8
  15. package/libs/esp32/built/debug/binary.js +462 -462
  16. package/libs/game/_locales/game-strings.json +21 -0
  17. package/libs/game/built/debug/binary.js +8992 -7743
  18. package/libs/game/hitbox.ts +43 -25
  19. package/libs/game/sprite.ts +244 -16
  20. package/libs/game/spritesay.ts +2 -2
  21. package/libs/gamepad/built/debug/binary.js +8 -8
  22. package/libs/keyboard/built/debug/binary.js +8 -8
  23. package/libs/lcd/built/debug/binary.js +8 -8
  24. package/libs/light/built/debug/binary.js +8 -8
  25. package/libs/light-spectrum-sensor/built/debug/binary.js +8 -8
  26. package/libs/lora/built/debug/binary.js +8 -8
  27. package/libs/matrix-keypad/built/debug/binary.js +8 -8
  28. package/libs/microphone/built/debug/binary.js +8 -8
  29. package/libs/mouse/built/debug/binary.js +8 -8
  30. package/libs/mqtt/built/debug/binary.js +176 -176
  31. package/libs/music/built/debug/binary.js +8 -8
  32. package/libs/net/built/debug/binary.js +176 -176
  33. package/libs/net/controller.ts +10 -1
  34. package/libs/net-game/built/debug/binary.js +10730 -9477
  35. package/libs/palette/built/debug/binary.js +8991 -7742
  36. package/libs/pixel/built/debug/binary.js +8 -8
  37. package/libs/power/built/debug/binary.js +8 -8
  38. package/libs/proximity/built/debug/binary.js +9 -9
  39. package/libs/pulse/built/debug/binary.js +8 -8
  40. package/libs/radio/built/debug/binary.js +8 -8
  41. package/libs/radio-broadcast/built/debug/binary.js +8 -8
  42. package/libs/rotary-encoder/built/debug/binary.js +8 -8
  43. package/libs/screen/built/debug/binary.js +50 -50
  44. package/libs/screen/image.cpp +14 -4
  45. package/libs/screen/image.ts +5 -4
  46. package/libs/screen/sim/image.ts +15 -3
  47. package/libs/servo/built/debug/binary.js +8 -8
  48. package/libs/sprite-scaling/README.md +3 -0
  49. package/libs/sprite-scaling/_locales/sprite-scaling-jsdoc-strings.json +1 -0
  50. package/libs/sprite-scaling/_locales/sprite-scaling-strings.json +8 -0
  51. package/libs/sprite-scaling/built/debug/binary.js +40085 -0
  52. package/libs/sprite-scaling/pxt.json +16 -0
  53. package/libs/sprite-scaling/scaling.ts +103 -0
  54. package/libs/sprite-scaling/targetoverrides.ts +1 -0
  55. package/libs/sprite-scaling/test.ts +0 -0
  56. package/libs/storyboard/built/debug/binary.js +8991 -7742
  57. package/libs/tests/built/debug/binary.js +15 -15
  58. package/libs/thermometer/built/debug/binary.js +8 -8
  59. package/libs/wifi---esp32/README.md +12 -0
  60. package/libs/wifi---esp32/buildlogin.sh +1 -0
  61. package/libs/wifi---esp32/controller.ts +27 -1
  62. package/libs/wifi---esp32/enums.d.ts +4 -0
  63. package/libs/wifi---esp32/httpserver.cpp +168 -0
  64. package/libs/wifi---esp32/login.full.html +37 -0
  65. package/libs/wifi---esp32/login.html +1 -0
  66. package/libs/wifi---esp32/pxt.json +1 -0
  67. package/libs/wifi---esp32/shims.d.ts +8 -0
  68. package/libs/wifi---esp32/sim/wifisockets.ts +3 -0
  69. package/libs/wifi---esp32/wifi.cpp +24 -15
  70. package/libs/wifi---esp32/wifi.h +15 -1
  71. package/package.json +1 -1
@@ -56,7 +56,7 @@ const pxsim_pxtrt = pxsim.pxtrt;
56
56
  const pxsim_numops = pxsim.numops;
57
57
 
58
58
 
59
- function _main___P55845(s) {
59
+ function _main___P56233(s) {
60
60
  let r0 = s.r0, step = s.pc;
61
61
  s.pc = -1;
62
62
 
@@ -66,19 +66,19 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re
66
66
  switch (step) {
67
67
  case 0:
68
68
 
69
- globals._intervals___56086 = (undefined);
70
- globals._pollEventQueue___56099 = (undefined);
69
+ globals._intervals___56476 = (undefined);
70
+ globals._pollEventQueue___56489 = (undefined);
71
71
  r0 = undefined;
72
72
  return leave(s, r0)
73
73
  default: oops()
74
74
  } } }
75
- _main___P55845.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"pxt_modules/light/neopixel.ts","functionName":"<main>","argumentNames":[]}
76
- _main___P55845.continuations = [ ]
75
+ _main___P56233.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"pxt_modules/light/neopixel.ts","functionName":"<main>","argumentNames":[]}
76
+ _main___P56233.continuations = [ ]
77
77
 
78
- function _main___P55845_mk(s) {
78
+ function _main___P56233_mk(s) {
79
79
  checkStack(s.depth);
80
80
  return {
81
- parent: s, fn: _main___P55845, depth: s.depth + 1,
81
+ parent: s, fn: _main___P56233, depth: s.depth + 1,
82
82
  pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
83
83
  } }
84
84
 
@@ -88,5 +88,5 @@ function _main___P55845_mk(s) {
88
88
 
89
89
  const breakpoints = setupDebugger(1, [])
90
90
 
91
- return _main___P55845
91
+ return _main___P56233
92
92
  })
@@ -56,7 +56,7 @@ const pxsim_pxtrt = pxsim.pxtrt;
56
56
  const pxsim_numops = pxsim.numops;
57
57
 
58
58
 
59
- function _main___P62687(s) {
59
+ function _main___P63081(s) {
60
60
  let r0 = s.r0, step = s.pc;
61
61
  s.pc = -1;
62
62
 
@@ -66,19 +66,19 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re
66
66
  switch (step) {
67
67
  case 0:
68
68
 
69
- globals._intervals___62928 = (undefined);
70
- globals._pollEventQueue___62941 = (undefined);
69
+ globals._intervals___63324 = (undefined);
70
+ globals._pollEventQueue___63337 = (undefined);
71
71
  r0 = undefined;
72
72
  return leave(s, r0)
73
73
  default: oops()
74
74
  } } }
75
- _main___P62687.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"power.ts","functionName":"<main>","argumentNames":[]}
76
- _main___P62687.continuations = [ ]
75
+ _main___P63081.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"power.ts","functionName":"<main>","argumentNames":[]}
76
+ _main___P63081.continuations = [ ]
77
77
 
78
- function _main___P62687_mk(s) {
78
+ function _main___P63081_mk(s) {
79
79
  checkStack(s.depth);
80
80
  return {
81
- parent: s, fn: _main___P62687, depth: s.depth + 1,
81
+ parent: s, fn: _main___P63081, depth: s.depth + 1,
82
82
  pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
83
83
  } }
84
84
 
@@ -88,5 +88,5 @@ function _main___P62687_mk(s) {
88
88
 
89
89
  const breakpoints = setupDebugger(1, [])
90
90
 
91
- return _main___P62687
91
+ return _main___P63081
92
92
  })
@@ -1,4 +1,4 @@
1
- // total=2904 new=27.20% cached=0.00% other=72.80%
1
+ // total=2910 new=27.32% cached=0.00% other=72.68%
2
2
  (function (ectx) {
3
3
  'use strict';
4
4
  const runtime = ectx.runtime;
@@ -56,7 +56,7 @@ const pxsim_pxtrt = pxsim.pxtrt;
56
56
  const pxsim_numops = pxsim.numops;
57
57
 
58
58
 
59
- function _main___P99909(s) {
59
+ function _main___P100995(s) {
60
60
  let r0 = s.r0, step = s.pc;
61
61
  s.pc = -1;
62
62
 
@@ -66,19 +66,19 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re
66
66
  switch (step) {
67
67
  case 0:
68
68
 
69
- globals._intervals___100150 = (undefined);
70
- globals._pollEventQueue___100163 = (undefined);
69
+ globals._intervals___101238 = (undefined);
70
+ globals._pollEventQueue___101251 = (undefined);
71
71
  r0 = undefined;
72
72
  return leave(s, r0)
73
73
  default: oops()
74
74
  } } }
75
- _main___P99909.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"vl53l0x.ts","functionName":"<main>","argumentNames":[]}
76
- _main___P99909.continuations = [ ]
75
+ _main___P100995.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"vl53l0x.ts","functionName":"<main>","argumentNames":[]}
76
+ _main___P100995.continuations = [ ]
77
77
 
78
- function _main___P99909_mk(s) {
78
+ function _main___P100995_mk(s) {
79
79
  checkStack(s.depth);
80
80
  return {
81
- parent: s, fn: _main___P99909, depth: s.depth + 1,
81
+ parent: s, fn: _main___P100995, depth: s.depth + 1,
82
82
  pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
83
83
  } }
84
84
 
@@ -88,5 +88,5 @@ function _main___P99909_mk(s) {
88
88
 
89
89
  const breakpoints = setupDebugger(1, [])
90
90
 
91
- return _main___P99909
91
+ return _main___P100995
92
92
  })
@@ -56,7 +56,7 @@ const pxsim_pxtrt = pxsim.pxtrt;
56
56
  const pxsim_numops = pxsim.numops;
57
57
 
58
58
 
59
- function _main___P19368(s) {
59
+ function _main___P19390(s) {
60
60
  let r0 = s.r0, step = s.pc;
61
61
  s.pc = -1;
62
62
 
@@ -66,19 +66,19 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re
66
66
  switch (step) {
67
67
  case 0:
68
68
 
69
- globals._intervals___19609 = (undefined);
70
- globals._pollEventQueue___19622 = (undefined);
69
+ globals._intervals___19633 = (undefined);
70
+ globals._pollEventQueue___19646 = (undefined);
71
71
  r0 = undefined;
72
72
  return leave(s, r0)
73
73
  default: oops()
74
74
  } } }
75
- _main___P19368.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"pxt_modules/base/ns.ts","functionName":"<main>","argumentNames":[]}
76
- _main___P19368.continuations = [ ]
75
+ _main___P19390.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"pxt_modules/base/ns.ts","functionName":"<main>","argumentNames":[]}
76
+ _main___P19390.continuations = [ ]
77
77
 
78
- function _main___P19368_mk(s) {
78
+ function _main___P19390_mk(s) {
79
79
  checkStack(s.depth);
80
80
  return {
81
- parent: s, fn: _main___P19368, depth: s.depth + 1,
81
+ parent: s, fn: _main___P19390, depth: s.depth + 1,
82
82
  pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
83
83
  } }
84
84
 
@@ -88,5 +88,5 @@ function _main___P19368_mk(s) {
88
88
 
89
89
  const breakpoints = setupDebugger(1, [])
90
90
 
91
- return _main___P19368
91
+ return _main___P19390
92
92
  })
@@ -56,7 +56,7 @@ const pxsim_pxtrt = pxsim.pxtrt;
56
56
  const pxsim_numops = pxsim.numops;
57
57
 
58
58
 
59
- function _main___P181722(s) {
59
+ function _main___P184207(s) {
60
60
  let r0 = s.r0, step = s.pc;
61
61
  s.pc = -1;
62
62
 
@@ -66,19 +66,19 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re
66
66
  switch (step) {
67
67
  case 0:
68
68
 
69
- globals._intervals___181963 = (undefined);
70
- globals._pollEventQueue___181976 = (undefined);
69
+ globals._intervals___184450 = (undefined);
70
+ globals._pollEventQueue___184463 = (undefined);
71
71
  r0 = undefined;
72
72
  return leave(s, r0)
73
73
  default: oops()
74
74
  } } }
75
- _main___P181722.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"targetoverrides.ts","functionName":"<main>","argumentNames":[]}
76
- _main___P181722.continuations = [ ]
75
+ _main___P184207.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"targetoverrides.ts","functionName":"<main>","argumentNames":[]}
76
+ _main___P184207.continuations = [ ]
77
77
 
78
- function _main___P181722_mk(s) {
78
+ function _main___P184207_mk(s) {
79
79
  checkStack(s.depth);
80
80
  return {
81
- parent: s, fn: _main___P181722, depth: s.depth + 1,
81
+ parent: s, fn: _main___P184207, depth: s.depth + 1,
82
82
  pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
83
83
  } }
84
84
 
@@ -88,5 +88,5 @@ function _main___P181722_mk(s) {
88
88
 
89
89
  const breakpoints = setupDebugger(1, [])
90
90
 
91
- return _main___P181722
91
+ return _main___P184207
92
92
  })
@@ -56,7 +56,7 @@ const pxsim_pxtrt = pxsim.pxtrt;
56
56
  const pxsim_numops = pxsim.numops;
57
57
 
58
58
 
59
- function _main___P183542(s) {
59
+ function _main___P186029(s) {
60
60
  let r0 = s.r0, step = s.pc;
61
61
  s.pc = -1;
62
62
 
@@ -66,19 +66,19 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re
66
66
  switch (step) {
67
67
  case 0:
68
68
 
69
- globals._intervals___183783 = (undefined);
70
- globals._pollEventQueue___183796 = (undefined);
69
+ globals._intervals___186272 = (undefined);
70
+ globals._pollEventQueue___186285 = (undefined);
71
71
  r0 = undefined;
72
72
  return leave(s, r0)
73
73
  default: oops()
74
74
  } } }
75
- _main___P183542.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"radio-broadcast.ts","functionName":"<main>","argumentNames":[]}
76
- _main___P183542.continuations = [ ]
75
+ _main___P186029.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"radio-broadcast.ts","functionName":"<main>","argumentNames":[]}
76
+ _main___P186029.continuations = [ ]
77
77
 
78
- function _main___P183542_mk(s) {
78
+ function _main___P186029_mk(s) {
79
79
  checkStack(s.depth);
80
80
  return {
81
- parent: s, fn: _main___P183542, depth: s.depth + 1,
81
+ parent: s, fn: _main___P186029, depth: s.depth + 1,
82
82
  pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
83
83
  } }
84
84
 
@@ -88,5 +88,5 @@ function _main___P183542_mk(s) {
88
88
 
89
89
  const breakpoints = setupDebugger(1, [])
90
90
 
91
- return _main___P183542
91
+ return _main___P186029
92
92
  })
@@ -56,7 +56,7 @@ const pxsim_pxtrt = pxsim.pxtrt;
56
56
  const pxsim_numops = pxsim.numops;
57
57
 
58
58
 
59
- function _main___P165594(s) {
59
+ function _main___P167735(s) {
60
60
  let r0 = s.r0, step = s.pc;
61
61
  s.pc = -1;
62
62
 
@@ -66,19 +66,19 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re
66
66
  switch (step) {
67
67
  case 0:
68
68
 
69
- globals._intervals___165835 = (undefined);
70
- globals._pollEventQueue___165848 = (undefined);
69
+ globals._intervals___167978 = (undefined);
70
+ globals._pollEventQueue___167991 = (undefined);
71
71
  r0 = undefined;
72
72
  return leave(s, r0)
73
73
  default: oops()
74
74
  } } }
75
- _main___P165594.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"targetoverrides.ts","functionName":"<main>","argumentNames":[]}
76
- _main___P165594.continuations = [ ]
75
+ _main___P167735.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"targetoverrides.ts","functionName":"<main>","argumentNames":[]}
76
+ _main___P167735.continuations = [ ]
77
77
 
78
- function _main___P165594_mk(s) {
78
+ function _main___P167735_mk(s) {
79
79
  checkStack(s.depth);
80
80
  return {
81
- parent: s, fn: _main___P165594, depth: s.depth + 1,
81
+ parent: s, fn: _main___P167735, depth: s.depth + 1,
82
82
  pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
83
83
  } }
84
84
 
@@ -88,5 +88,5 @@ function _main___P165594_mk(s) {
88
88
 
89
89
  const breakpoints = setupDebugger(1, [])
90
90
 
91
- return _main___P165594
91
+ return _main___P167735
92
92
  })
@@ -56,7 +56,7 @@ const pxsim_pxtrt = pxsim.pxtrt;
56
56
  const pxsim_numops = pxsim.numops;
57
57
 
58
58
 
59
- function _main___P50470(s) {
59
+ function _main___P50852(s) {
60
60
  let r0 = s.r0, step = s.pc;
61
61
  s.pc = -1;
62
62
 
@@ -66,29 +66,29 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re
66
66
  switch (step) {
67
67
  case 0:
68
68
 
69
- globals._intervals___50711 = (undefined);
70
- globals._pollEventQueue___50724 = (undefined);
71
- globals.__updated___50953 = (false);
72
- r0 = pxsim.control.runInParallel(control___screen_inline__P50958);
69
+ globals._intervals___51095 = (undefined);
70
+ globals._pollEventQueue___51108 = (undefined);
71
+ globals.__updated___51337 = (false);
72
+ r0 = pxsim.control.runInParallel(control___screen_inline__P51342);
73
73
  r0 = pxsim.image.create(178, 128);
74
- globals.screen___50981 = (r0);
75
- s.tmp_0 = control___screen_setupUpdate__P50955_mk(s);
76
- s.tmp_0.arg0 = _screen_internal_inline__P50986;
74
+ globals.screen___51365 = (r0);
75
+ s.tmp_0 = control___screen_setupUpdate__P51339_mk(s);
76
+ s.tmp_0.arg0 = _screen_internal_inline__P51370;
77
77
  s.callLocIdx = 4; s.pc = 1; return s.tmp_0;
78
78
  case 1:
79
79
  r0 = s.retval;
80
- globals.control_EventContext_onStats___50779 = (_screen_internal_inline__P50991);
80
+ globals.control_EventContext_onStats___51163 = (_screen_internal_inline__P51375);
81
81
  r0 = undefined;
82
82
  return leave(s, r0)
83
83
  default: oops()
84
84
  } } }
85
- _main___P50470.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"imagesoverrides.ts","functionName":"<main>","argumentNames":[]}
86
- _main___P50470.continuations = [ ]
85
+ _main___P50852.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"imagesoverrides.ts","functionName":"<main>","argumentNames":[]}
86
+ _main___P50852.continuations = [ ]
87
87
 
88
- function _main___P50470_mk(s) {
88
+ function _main___P50852_mk(s) {
89
89
  checkStack(s.depth);
90
90
  return {
91
- parent: s, fn: _main___P50470, depth: s.depth + 1,
91
+ parent: s, fn: _main___P50852, depth: s.depth + 1,
92
92
  pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
93
93
  tmp_0: undefined,
94
94
  } }
@@ -97,7 +97,7 @@ function _main___P50470_mk(s) {
97
97
 
98
98
 
99
99
 
100
- function control___screen_inline__P50958(s) {
100
+ function control___screen_inline__P51342(s) {
101
101
  let r0 = s.r0, step = s.pc;
102
102
  s.pc = -1;
103
103
 
@@ -110,23 +110,23 @@ switch (step) {
110
110
  case 1:
111
111
  r0 = pxsim_numops_toBoolDecr(true);
112
112
  if (!r0) { step = 4; continue; }
113
- globals.__updated___50953 = (false);
114
- s.tmp_0 = pause__P50788_mk(s);
113
+ globals.__updated___51337 = (false);
114
+ s.tmp_0 = pause__P51172_mk(s);
115
115
  s.tmp_0.arg0 = 200;
116
116
  s.callLocIdx = 2; s.pc = 5; return s.tmp_0;
117
117
  case 5:
118
118
  r0 = s.retval;
119
- r0 = pxsim_numops_toBoolDecr(globals.__updated___50953);
119
+ r0 = pxsim_numops_toBoolDecr(globals.__updated___51337);
120
120
  s.tmp_1 = r0;
121
121
  r0 = pxsim_Boolean__bang(s.tmp_1);
122
122
  s.tmp_0 = r0;
123
123
  r0 = pxsim_numops_toBoolDecr(s.tmp_0);
124
124
  if (!r0) { step = 2; continue; }
125
- s.tmp_2 = control___screen_update__P50954_mk(s);
125
+ s.tmp_2 = control___screen_update__P51338_mk(s);
126
126
  s.callLocIdx = 3; s.pc = 6; return s.tmp_2;
127
127
  case 6:
128
128
  r0 = s.retval;
129
- globals.__updated___50953 = (true);
129
+ globals.__updated___51337 = (true);
130
130
  case 2:
131
131
  case 3:
132
132
  { step = 1; continue; }
@@ -135,12 +135,12 @@ switch (step) {
135
135
  return leave(s, r0)
136
136
  default: oops()
137
137
  } } }
138
- control___screen_inline__P50958.info = {"start":396,"length":211,"line":17,"column":26,"endLine":26,"endColumn":5,"fileName":"frame.ts","functionName":"inline","argumentNames":[]}
138
+ control___screen_inline__P51342.info = {"start":396,"length":211,"line":17,"column":26,"endLine":26,"endColumn":5,"fileName":"frame.ts","functionName":"inline","argumentNames":[]}
139
139
 
140
- function control___screen_inline__P50958_mk(s) {
140
+ function control___screen_inline__P51342_mk(s) {
141
141
  checkStack(s.depth);
142
142
  return {
143
- parent: s, fn: control___screen_inline__P50958, depth: s.depth + 1,
143
+ parent: s, fn: control___screen_inline__P51342, depth: s.depth + 1,
144
144
  pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
145
145
  tmp_0: undefined,
146
146
  tmp_1: undefined,
@@ -151,7 +151,7 @@ function control___screen_inline__P50958_mk(s) {
151
151
 
152
152
 
153
153
 
154
- function _screen_internal_inline__P50986(s) {
154
+ function _screen_internal_inline__P51370(s) {
155
155
  let r0 = s.r0, step = s.pc;
156
156
  s.pc = -1;
157
157
 
@@ -161,17 +161,17 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re
161
161
  switch (step) {
162
162
  case 0:
163
163
 
164
- r0 = pxsim_pxtcore.updateScreen(globals.screen___50981);
164
+ r0 = pxsim_pxtcore.updateScreen(globals.screen___51365);
165
165
  r0 = undefined;
166
166
  return leave(s, r0)
167
167
  default: oops()
168
168
  } } }
169
- _screen_internal_inline__P50986.info = {"start":327,"length":26,"line":8,"column":33,"endLine":8,"endColumn":59,"fileName":"targetoverrides.ts","functionName":"inline","argumentNames":[]}
169
+ _screen_internal_inline__P51370.info = {"start":327,"length":26,"line":8,"column":33,"endLine":8,"endColumn":59,"fileName":"targetoverrides.ts","functionName":"inline","argumentNames":[]}
170
170
 
171
- function _screen_internal_inline__P50986_mk(s) {
171
+ function _screen_internal_inline__P51370_mk(s) {
172
172
  checkStack(s.depth);
173
173
  return {
174
- parent: s, fn: _screen_internal_inline__P50986, depth: s.depth + 1,
174
+ parent: s, fn: _screen_internal_inline__P51370, depth: s.depth + 1,
175
175
  pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
176
176
  } }
177
177
 
@@ -179,7 +179,7 @@ function _screen_internal_inline__P50986_mk(s) {
179
179
 
180
180
 
181
181
 
182
- function _screen_internal_inline__P50991(s) {
182
+ function _screen_internal_inline__P51375(s) {
183
183
  let r0 = s.r0, step = s.pc;
184
184
  s.pc = -1;
185
185
 
@@ -198,12 +198,12 @@ switch (step) {
198
198
  return leave(s, r0)
199
199
  default: oops()
200
200
  } } }
201
- _screen_internal_inline__P50991.info = {"start":390,"length":56,"line":9,"column":35,"endLine":11,"endColumn":5,"fileName":"targetoverrides.ts","functionName":"inline","argumentNames":["msg"]}
201
+ _screen_internal_inline__P51375.info = {"start":390,"length":56,"line":9,"column":35,"endLine":11,"endColumn":5,"fileName":"targetoverrides.ts","functionName":"inline","argumentNames":["msg"]}
202
202
 
203
- function _screen_internal_inline__P50991_mk(s) {
203
+ function _screen_internal_inline__P51375_mk(s) {
204
204
  checkStack(s.depth);
205
205
  return {
206
- parent: s, fn: _screen_internal_inline__P50991, depth: s.depth + 1,
206
+ parent: s, fn: _screen_internal_inline__P51375, depth: s.depth + 1,
207
207
  pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
208
208
  arg0: undefined,
209
209
  } }
@@ -212,7 +212,7 @@ function _screen_internal_inline__P50991_mk(s) {
212
212
 
213
213
 
214
214
 
215
- function control___screen_setupUpdate__P50955(s) {
215
+ function control___screen_setupUpdate__P51339(s) {
216
216
  let r0 = s.r0, step = s.pc;
217
217
  s.pc = -1;
218
218
 
@@ -226,8 +226,8 @@ switch (step) {
226
226
  s.arg0 = (s.lambdaArgs[0]);
227
227
  s.lambdaArgs = null;
228
228
  }
229
- globals.__updated___50953 = (true);
230
- globals.__update___50951 = (s.arg0);
229
+ globals.__updated___51337 = (true);
230
+ globals.__update___51335 = (s.arg0);
231
231
  s.tmp_0 = lambda_1_mk(s);
232
232
  s.tmp_0.argL = s.arg0;
233
233
  setupLambda(s.tmp_0, s.tmp_0.argL);
@@ -238,12 +238,12 @@ switch (step) {
238
238
  return leave(s, r0)
239
239
  default: oops()
240
240
  } } }
241
- control___screen_setupUpdate__P50955.info = {"start":198,"length":125,"line":10,"column":4,"endLine":14,"endColumn":5,"fileName":"frame.ts","functionName":"setupUpdate","argumentNames":["update"]}
241
+ control___screen_setupUpdate__P51339.info = {"start":198,"length":125,"line":10,"column":4,"endLine":14,"endColumn":5,"fileName":"frame.ts","functionName":"setupUpdate","argumentNames":["update"]}
242
242
 
243
- function control___screen_setupUpdate__P50955_mk(s) {
243
+ function control___screen_setupUpdate__P51339_mk(s) {
244
244
  checkStack(s.depth);
245
245
  return {
246
- parent: s, fn: control___screen_setupUpdate__P50955, depth: s.depth + 1,
246
+ parent: s, fn: control___screen_setupUpdate__P51339, depth: s.depth + 1,
247
247
  pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
248
248
  tmp_0: undefined,
249
249
  arg0: undefined,
@@ -253,7 +253,7 @@ function control___screen_setupUpdate__P50955_mk(s) {
253
253
 
254
254
 
255
255
 
256
- function control___screen_update__P50954(s) {
256
+ function control___screen_update__P51338(s) {
257
257
  let r0 = s.r0, step = s.pc;
258
258
  s.pc = -1;
259
259
 
@@ -263,27 +263,27 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re
263
263
  switch (step) {
264
264
  case 0:
265
265
 
266
- r0 = pxsim_numops_toBoolDecr(globals.__update___50951);
266
+ r0 = pxsim_numops_toBoolDecr(globals.__update___51335);
267
267
  if (!r0) { step = 1; continue; }
268
268
  s.tmp_0 = lambda_1_mk(s);
269
- s.tmp_0.argL = globals.__update___50951;
269
+ s.tmp_0.argL = globals.__update___51335;
270
270
  setupLambda(s.tmp_0, s.tmp_0.argL);
271
271
  s.callLocIdx = 0; s.pc = 3; return s.tmp_0;
272
272
  case 3:
273
273
  r0 = s.retval;
274
274
  case 1:
275
275
  case 2:
276
- globals.__updated___50953 = (true);
276
+ globals.__updated___51337 = (true);
277
277
  r0 = undefined;
278
278
  return leave(s, r0)
279
279
  default: oops()
280
280
  } } }
281
- control___screen_update__P50954.info = {"start":90,"length":102,"line":4,"column":4,"endLine":8,"endColumn":5,"fileName":"frame.ts","functionName":"update","argumentNames":[]}
281
+ control___screen_update__P51338.info = {"start":90,"length":102,"line":4,"column":4,"endLine":8,"endColumn":5,"fileName":"frame.ts","functionName":"update","argumentNames":[]}
282
282
 
283
- function control___screen_update__P50954_mk(s) {
283
+ function control___screen_update__P51338_mk(s) {
284
284
  checkStack(s.depth);
285
285
  return {
286
- parent: s, fn: control___screen_update__P50954, depth: s.depth + 1,
286
+ parent: s, fn: control___screen_update__P51338, depth: s.depth + 1,
287
287
  pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
288
288
  tmp_0: undefined,
289
289
  } }
@@ -292,7 +292,7 @@ function control___screen_update__P50954_mk(s) {
292
292
 
293
293
 
294
294
 
295
- function pause__P50788(s) {
295
+ function pause__P51172(s) {
296
296
  let r0 = s.r0, step = s.pc;
297
297
  s.pc = -1;
298
298
 
@@ -316,12 +316,12 @@ switch (step) {
316
316
  return leave(s, r0)
317
317
  default: oops()
318
318
  } } }
319
- pause__P50788.info = {"start":246,"length":57,"line":7,"column":0,"endLine":9,"endColumn":1,"fileName":"pxt_modules/base/pause.ts","functionName":"pause","argumentNames":["ms"]}
319
+ pause__P51172.info = {"start":246,"length":57,"line":7,"column":0,"endLine":9,"endColumn":1,"fileName":"pxt_modules/base/pause.ts","functionName":"pause","argumentNames":["ms"]}
320
320
 
321
- function pause__P50788_mk(s) {
321
+ function pause__P51172_mk(s) {
322
322
  checkStack(s.depth);
323
323
  return {
324
- parent: s, fn: pause__P50788, depth: s.depth + 1,
324
+ parent: s, fn: pause__P51172, depth: s.depth + 1,
325
325
  pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
326
326
  arg0: undefined,
327
327
  } }
@@ -343,7 +343,7 @@ function lambda_1_mk(s) {
343
343
  } }
344
344
 
345
345
 
346
- const breakpoints = setupDebugger(1, ["__updated___50953","screen___50981","__update___50951"])
346
+ const breakpoints = setupDebugger(1, ["__updated___51337","screen___51365","__update___51335"])
347
347
 
348
- return _main___P50470
348
+ return _main___P50852
349
349
  })
@@ -1075,7 +1075,7 @@ void _blitRow(Image_ img, int xy, Image_ from, int xh) {
1075
1075
  blitRow(img, XX(xy), YY(xy), from, XX(xh), YY(xh));
1076
1076
  }
1077
1077
 
1078
- void blit(Image_ dst, Image_ src, pxt::RefCollection *args) {
1078
+ bool blit(Image_ dst, Image_ src, pxt::RefCollection *args) {
1079
1079
  int xDst = pxt::toInt(args->getAt(0));
1080
1080
  int yDst = pxt::toInt(args->getAt(1));
1081
1081
  int wDst = pxt::toInt(args->getAt(2));
@@ -1085,6 +1085,7 @@ void blit(Image_ dst, Image_ src, pxt::RefCollection *args) {
1085
1085
  int wSrc = pxt::toInt(args->getAt(6));
1086
1086
  int hSrc = pxt::toInt(args->getAt(7));
1087
1087
  bool transparent = pxt::toBoolQuick(args->getAt(8));
1088
+ bool check = pxt::toBoolQuick(args->getAt(9));
1088
1089
 
1089
1090
  int xSrcStep = (wSrc << 16) / wDst;
1090
1091
  int ySrcStep = (hSrc << 16) / hDst;
@@ -1101,23 +1102,32 @@ void blit(Image_ dst, Image_ src, pxt::RefCollection *args) {
1101
1102
  int xSrcEnd = min(src->width(), xSrc + wSrc) << 16;
1102
1103
  int ySrcEnd = min(src->height(), ySrc + hSrc) << 16;
1103
1104
 
1104
- dst->makeWritable();
1105
+ if (!check)
1106
+ dst->makeWritable();
1105
1107
 
1106
1108
  for (int yDstCur = yDstStart, ySrcCur = ySrcStart; yDstCur < yDstEnd && ySrcCur < ySrcEnd; ++yDstCur, ySrcCur += ySrcStep) {
1107
1109
  int ySrcCurI = ySrcCur >> 16;
1108
1110
  for (int xDstCur = xDstStart, xSrcCur = xSrcStart; xDstCur < xDstEnd && xSrcCur < xSrcEnd; ++xDstCur, xSrcCur += xSrcStep) {
1109
1111
  int xSrcCurI = xSrcCur >> 16;
1110
1112
  int cSrc = getCore(src, xSrcCurI, ySrcCurI);
1113
+ if (check && cSrc) {
1114
+ int cDst = getCore(dst, xDstCur, yDstCur);
1115
+ if (cDst) {
1116
+ return true;
1117
+ }
1118
+ continue;
1119
+ }
1111
1120
  if (!transparent || cSrc) {
1112
1121
  setCore(dst, xDstCur, yDstCur, cSrc);
1113
1122
  }
1114
1123
  }
1115
1124
  }
1125
+ return false;
1116
1126
  }
1117
1127
 
1118
1128
  //%
1119
- void _blit(Image_ img, Image_ src, pxt::RefCollection *args) {
1120
- blit(img, src, args);
1129
+ bool _blit(Image_ img, Image_ src, pxt::RefCollection *args) {
1130
+ return blit(img, src, args);
1121
1131
  }
1122
1132
 
1123
1133
  void fillCircle(Image_ img, int cx, int cy, int r, int c) {
@@ -84,7 +84,7 @@ interface Image {
84
84
  * compressing to fit the dimensions of the destination rectangle, if necessary.
85
85
  */
86
86
  //% helper=imageBlit
87
- blit(xDst: number, yDst: number, wDst: number, hDst: number, src: Image, xSrc: number, ySrc: number, wSrc: number, hSrc: number, transparent: boolean): void;
87
+ blit(xDst: number, yDst: number, wDst: number, hDst: number, src: Image, xSrc: number, ySrc: number, wSrc: number, hSrc: number, transparent: boolean, check: boolean): boolean;
88
88
  }
89
89
 
90
90
  interface ScreenImage extends Image {
@@ -126,7 +126,7 @@ namespace helpers {
126
126
  declare function _blitRow(img: Image, xy: number, from: Image, xh: number): void;
127
127
 
128
128
  //% shim=ImageMethods::_blit
129
- declare function _blit(img: Image, src: Image, args: number[]): void;
129
+ declare function _blit(img: Image, src: Image, args: number[]): boolean;
130
130
 
131
131
  function pack(x: number, y: number) {
132
132
  return (Math.clamp(-30000, 30000, x | 0) & 0xffff) | (Math.clamp(-30000, 30000, y | 0) << 16)
@@ -134,7 +134,7 @@ namespace helpers {
134
134
 
135
135
  let _blitArgs: number[];
136
136
 
137
- export function imageBlit(img: Image, xDst: number, yDst: number, wDst: number, hDst: number, src: Image, xSrc: number, ySrc: number, wSrc: number, hSrc: number, transparent: boolean) {
137
+ export function imageBlit(img: Image, xDst: number, yDst: number, wDst: number, hDst: number, src: Image, xSrc: number, ySrc: number, wSrc: number, hSrc: number, transparent: boolean, check: boolean): boolean {
138
138
  _blitArgs = _blitArgs || [];
139
139
  _blitArgs[0] = xDst | 0;
140
140
  _blitArgs[1] = yDst | 0;
@@ -145,7 +145,8 @@ namespace helpers {
145
145
  _blitArgs[6] = wSrc | 0;
146
146
  _blitArgs[7] = hSrc | 0;
147
147
  _blitArgs[8] = transparent ? 1 : 0;
148
- _blit(img, src, _blitArgs);
148
+ _blitArgs[9] = check ? 1 : 0;
149
+ return _blit(img, src, _blitArgs);
149
150
  }
150
151
 
151
152
  export function imageBlitRow(img: Image, dstX: number, dstY: number, from: Image, fromX: number, fromH: number): void {