diff --git a/sim.c b/sim.c index dfd0722..4e433a1 100644 --- a/sim.c +++ b/sim.c @@ -74,7 +74,7 @@ static Glyph glyphs_add(Glyph a, Glyph b) { } static inline bool glyph_is_lowercase(Glyph g) { return g & (1 << 5); } -//static inline bool glyph_is_uppercase(Glyph g) { return (g & (1 << 5)) == 0; } +static inline bool glyph_is_uppercase(Glyph g) { return (g & (1 << 5)) == 0; } static inline Glyph glyph_lowered_unsafe(Glyph g) { return (Glyph)(g | (1 << 5)); } @@ -259,14 +259,9 @@ Usz usz_clamp(Usz val, Usz min, Usz max) { #define OPER_FUNCTION_ATTRIBS ORCA_FORCE_NO_INLINE static void -#define BEGIN_UNIQUE_OPERATOR(_oper_name) \ - OPER_FUNCTION_ATTRIBS oper_behavior_##_oper_name(OPER_PHASE_COMMON_ARGS) { \ - OPER_IGNORE_COMMON_ARGS() #define BEGIN_OPERATOR(_oper_name) \ OPER_FUNCTION_ATTRIBS oper_behavior_##_oper_name(OPER_PHASE_COMMON_ARGS) { \ - OPER_IGNORE_COMMON_ARGS() \ - enum { Uppercase_oper_char = Orca_oper_upper_char_##_oper_name }; \ - (void)Uppercase_oper_char; + OPER_IGNORE_COMMON_ARGS() #define END_OPERATOR } @@ -303,7 +298,7 @@ Usz usz_clamp(Usz val, Usz min, Usz max) { #define REALIZE_DUAL \ bool const Dual_is_active = \ - (Uppercase_oper_char == This_oper_char) || \ + (glyph_is_uppercase(This_oper_char)) || \ oper_has_neighboring_bang(gbuffer, height, width, y, x); #define BEGIN_PORTS \ @@ -382,8 +377,7 @@ ORCA_DECLARE_OPERATORS(ORCA_SOLO_OPERATORS, ORCA_DUAL_OPERATORS, 'N' : case 'n' : case 'E' : case 'e' : case 'S' : case 's' : case 'W' \ : case 'w' -OPER_FUNCTION_ATTRIBS oper_behavior_movement(OPER_PHASE_COMMON_ARGS) { - OPER_IGNORE_COMMON_ARGS() +BEGIN_OPERATOR(movement) if (cell_flags & (Mark_flag_lock | Mark_flag_sleep)) return; if (glyph_is_lowercase(This_oper_char) && @@ -421,9 +415,9 @@ OPER_FUNCTION_ATTRIBS oper_behavior_movement(OPER_PHASE_COMMON_ARGS) { } else { gbuffer[y * width + x] = '*'; } -} +END_OPERATOR -BEGIN_UNIQUE_OPERATOR(keys) +BEGIN_OPERATOR(keys) BEGIN_ACTIVE_PORTS PORT(0, 1, IN); PORT(1, 0, OUT); @@ -444,7 +438,7 @@ BEGIN_UNIQUE_OPERATOR(keys) POKE(1, 0, o); END_OPERATOR -BEGIN_UNIQUE_OPERATOR(comment) +BEGIN_OPERATOR(comment) if (!IS_AWAKE) return; // restrict probably ok here... @@ -461,13 +455,13 @@ BEGIN_UNIQUE_OPERATOR(comment) } END_OPERATOR -BEGIN_UNIQUE_OPERATOR(bang) +BEGIN_OPERATOR(bang) if (IS_AWAKE) { gbuffer_poke(gbuffer, height, width, y, x, '.'); } END_OPERATOR -BEGIN_UNIQUE_OPERATOR(midi) +BEGIN_OPERATOR(midi) BEGIN_ACTIVE_PORTS for (Usz i = 1; i < 6; ++i) { PORT(0, (Isz)i, IN); @@ -502,7 +496,7 @@ BEGIN_UNIQUE_OPERATOR(midi) oe->bar_divisor = (U8)usz_clamp(index_of(length_g), 1, Glyphs_index_max); END_OPERATOR -BEGIN_UNIQUE_OPERATOR(osc) +BEGIN_OPERATOR(osc) BEGIN_ACTIVE_PORTS PORT(0, -2, IN | HASTE); PORT(0, -1, IN | HASTE);