diff --git a/sim.c b/sim.c index 9ca787a..d780cd3 100644 --- a/sim.c +++ b/sim.c @@ -278,6 +278,7 @@ Usz UCLAMP(Usz val, Usz min, Usz max) { _('P', 'p', push) \ _('T', 't', track) \ _('U', 'u', uturn) \ + _('V', 'v', beam) \ _('X', 'x', teleport) ORCA_DECLARE_OPERATORS(ORCA_SOLO_OPERATORS, ORCA_DUAL_OPERATORS) @@ -608,6 +609,21 @@ END_PHASE #undef UTURN_DIRS +BEGIN_DUAL_PHASE_0(beam) + if (!IS_AWAKE) + return; + Usz max_y = y + 255; + if (height < max_y) + max_y = height; + Glyph* col = gbuffer + x; + for (Usz y0 = y + 1; y0 < max_y; ++y0) { + Glyph g = col[width * y0]; + (void)g; + } +END_PHASE +BEGIN_DUAL_PHASE_1(beam) +END_PHASE + BEGIN_DUAL_PHASE_0(teleport) REALIZE_DUAL; Usz write_y = 0;