diff --git a/sim.c b/sim.c index 4a73cf8..68bbba2 100644 --- a/sim.c +++ b/sim.c @@ -254,7 +254,9 @@ Usz UCLAMP(Usz val, Usz min, Usz max) { //////// Operators -#define ORCA_SOLO_OPERATORS(_) _('*', bang) +#define ORCA_SOLO_OPERATORS(_) \ + _('#', comment) \ + _('*', bang) #define ORCA_DUAL_OPERATORS(_) \ _('N', 'n', north) \ @@ -298,6 +300,21 @@ END_PHASE BEGIN_SOLO_PHASE_1(bang) END_PHASE +BEGIN_SOLO_PHASE_0(comment) + if (!IS_AWAKE) + return; + Glyph* line = gbuffer + y * width; + Usz max_x = width < 255 ? width : 255; + for (Usz x0 = x + 1; x0 < max_x; ++x0) { + Glyph g = line[x0]; + mbuffer_poke_flags_or(mbuffer, height, width, y, x0, Mark_flag_lock); + if (g == '#') + break; + } +END_PHASE +BEGIN_SOLO_PHASE_1(comment) +END_PHASE + BEGIN_DUAL_PHASE_0(add) REALIZE_DUAL; BEGIN_DUAL_PORTS