differs between oldstate and state in only the hint bit should not
have a flip animation even if hints_active is TRUE. Flip animations
should only happen for tiles which are changing their primary state.
(Put like that, it seems so obvious.)
Test case which demonstrates this fix to be right and r6384 to be
wrong: 3x3:
101000000000000000000,300 . Hit Solve immediately and
then click on the red-highlighted squares.
git-svn-id: svn://svn.tartarus.org/sgt/puzzles@6385
cda61777-01e9-0310-a592-
d414129be87e
int fx, fy, fd;
int v = state->grid[i];
int vv;
- int hintmask = (state->hints_active ? ~0 : ~2);
if (flashframe >= 0) {
fx = (w+1)/2 - min(x+1, w-x);
v &= ~1;
}
- v &= hintmask;
+ if (!state->hints_active)
+ v &= ~2;
if (ui->cdraw && ui->cx == x && ui->cy == y)
v |= 4;
- if (oldstate && ((state->grid[i] ^ oldstate->grid[i]) & hintmask))
+ if (oldstate && ((state->grid[i] ^ oldstate->grid[i]) &~ 2))
vv = 255; /* means `animated' */
else
vv = v;