mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-10 23:01:50 +00:00
Update DUMB to 6e159ab89b5df27acf8a182a1ea5bf307ba8ff95
- Fixed two bugs with pattern loops causing songs to loop forever SVN r4072 (trunk)
This commit is contained in:
parent
afabf7e018
commit
1e04a8821a
1 changed files with 5 additions and 3 deletions
|
@ -1211,6 +1211,8 @@ static int update_pattern_variables(DUMB_IT_SIGRENDERER *sigrenderer, IT_ENTRY *
|
||||||
if (!channel->played_patjump)
|
if (!channel->played_patjump)
|
||||||
channel->played_patjump = bit_array_create(256);
|
channel->played_patjump = bit_array_create(256);
|
||||||
else {
|
else {
|
||||||
|
if ( channel->played_patjump_order != 0xFFFE && channel->played_patjump_order != sigrenderer->order )
|
||||||
|
bit_array_merge(sigrenderer->played, channel->played_patjump, channel->played_patjump_order * 256);
|
||||||
//if (channel->played_patjump_order != sigrenderer->order)
|
//if (channel->played_patjump_order != sigrenderer->order)
|
||||||
bit_array_reset(channel->played_patjump);
|
bit_array_reset(channel->played_patjump);
|
||||||
}
|
}
|
||||||
|
@ -1225,13 +1227,13 @@ static int update_pattern_variables(DUMB_IT_SIGRENDERER *sigrenderer, IT_ENTRY *
|
||||||
int n;
|
int n;
|
||||||
bit_array_destroy(channel->played_patjump);
|
bit_array_destroy(channel->played_patjump);
|
||||||
channel->played_patjump = bit_array_create(256);
|
channel->played_patjump = bit_array_create(256);
|
||||||
for (n = 0; n < 256; n++)
|
for (n = channel->pat_loop_row; n <= sigrenderer->row; n++)
|
||||||
bit_array_clear(sigrenderer->played, sigrenderer->order * 256 + n);
|
bit_array_clear(sigrenderer->played, sigrenderer->order * 256 + n);
|
||||||
channel->played_patjump_order = sigrenderer->order;
|
channel->played_patjump_order = sigrenderer->order;
|
||||||
} else if (channel->played_patjump_order == sigrenderer->order) {
|
} else if (channel->played_patjump_order == sigrenderer->order) {
|
||||||
bit_array_set(channel->played_patjump, sigrenderer->row);
|
bit_array_set(channel->played_patjump, sigrenderer->row);
|
||||||
bit_array_mask(sigrenderer->played, channel->played_patjump, channel->played_patjump_order * 256);
|
bit_array_mask(sigrenderer->played, channel->played_patjump, channel->played_patjump_order * 256);
|
||||||
bit_array_reset(channel->played_patjump);
|
//bit_array_reset(channel->played_patjump);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
channel->pat_loop_count = v;
|
channel->pat_loop_count = v;
|
||||||
|
@ -1258,7 +1260,7 @@ static int update_pattern_variables(DUMB_IT_SIGRENDERER *sigrenderer, IT_ENTRY *
|
||||||
if (channel->played_patjump_order == sigrenderer->order) {
|
if (channel->played_patjump_order == sigrenderer->order) {
|
||||||
bit_array_set(channel->played_patjump, sigrenderer->row);
|
bit_array_set(channel->played_patjump, sigrenderer->row);
|
||||||
bit_array_mask(sigrenderer->played, channel->played_patjump, channel->played_patjump_order * 256);
|
bit_array_mask(sigrenderer->played, channel->played_patjump, channel->played_patjump_order * 256);
|
||||||
bit_array_reset(channel->played_patjump);
|
//bit_array_reset(channel->played_patjump);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
sigrenderer->breakrow = channel->pat_loop_row;
|
sigrenderer->breakrow = channel->pat_loop_row;
|
||||||
|
|
Loading…
Reference in a new issue