From bd87ccbd40ebaa3ecd43a460ec9a2c9fad42eb83 Mon Sep 17 00:00:00 2001 From: cancel Date: Sat, 1 Dec 2018 12:02:18 +0900 Subject: [PATCH] Remove BEGIN_HASTE/END_HASTE macros Confusing and not needed. Use IS_AWAKE instead. --- sim.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/sim.c b/sim.c index 673f526..e8042f1 100644 --- a/sim.c +++ b/sim.c @@ -253,20 +253,17 @@ Usz usz_clamp(Usz val, Usz min, Usz max) { : Mark_flag_none)) #define END_PORTS } -#define BEGIN_HASTE if (!(cell_flags & (Mark_flag_lock | Mark_flag_sleep))) { -#define END_HASTE } - #define OPER_MOVE_OR_EXPLODE(_delta_y, _delta_x) \ oper_move_relative_or_explode(gbuffer, mbuffer, height, width, \ This_oper_char, y, x, _delta_y, _delta_x) #define MOVING_OPERATOR(_oper_name, _delta_y, _delta_x) \ BEGIN_DUAL_PHASE_0(_oper_name) \ - BEGIN_HASTE \ + if (IS_AWAKE) { \ REALIZE_DUAL; \ STOP_IF_DUAL_INACTIVE; \ OPER_MOVE_OR_EXPLODE(_delta_y, _delta_x); \ - END_HASTE \ + } \ END_PHASE \ BEGIN_DUAL_PHASE_1(_oper_name) \ END_PHASE @@ -316,9 +313,9 @@ MOVING_OPERATOR(southeast, 1, 1) : case 'w' : case 'Z' : case 'z' BEGIN_SOLO_PHASE_0(bang) - BEGIN_HASTE + if (IS_AWAKE) { BECOME('.'); - END_HASTE + } END_PHASE BEGIN_SOLO_PHASE_1(bang) END_PHASE @@ -381,10 +378,8 @@ END_PHASE BEGIN_DUAL_PHASE_0(delay) PSEUDO_DUAL; bool out_is_nonlocking = false; - if (DUAL_IS_ACTIVE) { - BEGIN_HASTE - out_is_nonlocking = INDEX(PEEK(0, -2)) == 0; - END_HASTE + if (IS_AWAKE && DUAL_IS_ACTIVE) { + out_is_nonlocking = INDEX(PEEK(0, -2)) == 0; } BEGIN_DUAL_PORTS PORT(0, -2, IN | HASTE); @@ -479,9 +474,9 @@ BEGIN_DUAL_PHASE_0(kill) PORT(1, 0, OUT | HASTE); END_PORTS STOP_IF_DUAL_INACTIVE; - BEGIN_HASTE + if (IS_AWAKE) { POKE(1, 0, '.'); - END_HASTE + } END_PHASE BEGIN_DUAL_PHASE_1(kill) END_PHASE