ref: 46a337c17f1921640757007c67f5af3ca2a3ba19
parent: fed6a743dd695249dde84369b09ac8a4e6facfe7
author: Chris Moeller <kode54@gmail.com>
date: Fri Sep 27 15:59:47 EDT 2013
Envelopes do not carry when New Note Action is Cut
--- a/dumb/src/it/itrender.c
+++ b/dumb/src/it/itrender.c
@@ -1730,7 +1730,7 @@
int pitch_env_tick = 0;
DUMB_IT_SIGDATA *sigdata = sigrenderer->sigdata;
- unsigned char nna;
+ unsigned char nna = ~0;
int i, envelopes_copied = 0;
if (channel->playing) {
@@ -1749,7 +1749,7 @@
else
nna = channel->playing->instrument->new_note_action;
- if (!(channel->playing->flags & IT_PLAYING_SUSTAINOFF))
+ if (!(channel->playing->flags & IT_PLAYING_SUSTAINOFF) && nna != NNA_NOTE_CUT)
{
vol_env_tick = channel->playing->volume_envelope.tick;
pan_env_tick = channel->playing->pan_envelope.tick;
@@ -1858,7 +1858,7 @@
if (!channel->playing)
return;
- if (!envelopes_copied && sigdata->flags & IT_USE_INSTRUMENTS) {
+ if (!envelopes_copied && sigdata->flags & IT_USE_INSTRUMENTS && nna != NNA_NOTE_CUT) {
for (i = 0; i < DUMB_IT_N_NNA_CHANNELS; i++) {
IT_PLAYING * playing = sigrenderer->playing[i];
if (!playing || playing->channel != channel) continue;