ref: a9176165a2ccc56410b2004d2f5dd40b2052453a
parent: 1a9e0d4fd889dc9d17a5ebe97825be0cb2b7a273
author: Chris Moeller <kode54@gmail.com>
date: Sun Nov 21 20:24:37 EST 2010
- Changed a break to row behavior in DUMB, hopefully it doesn't break anything - Version is now 0.9.9.22 git-tfs-id: [http://localhost:8080/tfs/DefaultCollection/]$/foobar2000/files/plugins.root;C516
--- a/dumb/src/it/itrender.c
+++ b/dumb/src/it/itrender.c
@@ -1272,8 +1272,8 @@
- If we jump, then effect a loop using an old E60, and then the pattern ends, the next pattern starts on the row corresponding to the E60.
- Theory: breakrow is not cleared when it's a pattern loop effect!
*/
- //if (sigrenderer->processrow < 0xFFFE) // I have no idea if this is correct or not - FT2 is so weird :(
- // sigrenderer->breakrow = channel->pat_loop_row; /* emulate bug in FT2 */
+ if ((sigrenderer->processrow | 0xC00) < 0xFFFE) // I have no idea if this is correct or not - FT2 is so weird :(
+ sigrenderer->breakrow = channel->pat_loop_row; /* emulate bug in FT2 */
} else
channel->pat_loop_row = sigrenderer->processrow + 1;
#ifdef BIT_ARRAY_BULLSHIT
@@ -3810,8 +3810,10 @@
sigrenderer->processrow = sigrenderer->breakrow;
sigrenderer->breakrow = 0;
for (n = 0; n < DUMB_IT_N_CHANNELS; n++) sigrenderer->channel[n].pat_loop_end_row = 0;
- } else
+ } else {
sigrenderer->processrow = sigrenderer->breakrow;
+ sigrenderer->breakrow = 0; // XXX lolwut
+ }
if (sigrenderer->processorder == 0xFFFF)
sigrenderer->processorder = sigrenderer->order - 1;