X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fxmatrix.c;h=94c1b07e670b9eecce86a9ac8319fd7345a12ef4;hb=ec8d2b32b63649e6d32bdfb306eda062769af823;hp=60fe09dd2b9c487dedf355b3ceaaab5a50231ac8;hpb=c1b9b55ad8d59dc05ef55e316aebf5863e7dfa56;p=xscreensaver diff --git a/hacks/xmatrix.c b/hacks/xmatrix.c index 60fe09dd..94c1b07e 100644 --- a/hacks/xmatrix.c +++ b/hacks/xmatrix.c @@ -43,7 +43,7 @@ * And keep in mind that this program emulates the * behavior of the computer screens that were visible * in the movies -- not the behavior of the effects in - * the title sequences. + * the title sequences. "GLMatrix" does that. * * ========================================================== * @@ -502,6 +502,19 @@ init_spinners (m_state *state) } +static void +clear_spinners (m_state *state) +{ + int i; + for (i = 0; i < state->grid_width * state->grid_height; i++) + if (state->cells[i].spinner) + { + state->cells[i].spinner = 0; + state->cells[i].changed = 1; + } +} + + static void set_mode (m_state *, m_mode); @@ -563,12 +576,7 @@ init_drain (m_state *state) } /* Turn off all the spinners, else they never go away. */ - for (i = 0; i < state->grid_width * state->grid_height; i++) - if (state->cells[i].spinner) - { - state->cells[i].spinner = 0; - state->cells[i].changed = 1; - } + clear_spinners (state); } static Bool @@ -1176,6 +1184,7 @@ hack_text (m_state *state) { case TRACE_TEXT_A: case TRACE_TEXT_B: + clear_spinners (state); if (state->mode == TRACE_TEXT_A) { if (state->grid_width >= 52) @@ -1250,6 +1259,7 @@ hack_text (m_state *state) case KNOCK: { + clear_spinners (state); state->typing = ("\001Wake up, Neo...\n" "\001The Matrix has you...\n" "\001Follow the white rabbit.\n" @@ -1275,6 +1285,7 @@ hack_text (m_state *state) lot like Cisco IOS to me. (IOS is a descendant of VMS.) */ + clear_spinners (state); state->typing = # ifdef __GNUC__ __extension__ /* don't warn about "string length is greater than @@ -1564,7 +1575,7 @@ hack_matrix (m_state *state) if (state->mode == TRACE_A || state->mode == TRACE_B) bottom_feeder_p = True; - if (state->insert_top_p && state->insert_bottom_p) + else if (state->insert_top_p && state->insert_bottom_p) bottom_feeder_p = (random() & 1); else bottom_feeder_p = state->insert_bottom_p;