shithub: dumb

Download patch

ref: 2c9ca950a32cd2de05ed8ae384ad08248793fecd
parent: e07088e5f65186f78681116f3337a89d9db3f5ae
author: Chris Moeller <kode54@gmail.com>
date: Thu Nov 7 14:36:22 EST 2013

Pan and pitch envelopes carry regardless of NNA being note cut

--- a/dumb/src/it/itrender.c
+++ b/dumb/src/it/itrender.c
@@ -1801,9 +1801,10 @@
 		else
 			nna = channel->playing->instrument->new_note_action;
 
-		if (!(channel->playing->flags & IT_PLAYING_SUSTAINOFF) && nna != NNA_NOTE_CUT)
+		if (!(channel->playing->flags & IT_PLAYING_SUSTAINOFF))
 		{
-			vol_env_tick = channel->playing->volume_envelope.tick;
+			if (nna != NNA_NOTE_CUT)
+				vol_env_tick = channel->playing->volume_envelope.tick;
 			pan_env_tick = channel->playing->pan_envelope.tick;
 			pitch_env_tick = channel->playing->pitch_envelope.tick;
 			envelopes_copied = 1;
@@ -1910,12 +1911,13 @@
 	if (!channel->playing)
 		return;
 
-	if (!envelopes_copied && sigdata->flags & IT_USE_INSTRUMENTS && nna != NNA_NOTE_CUT) {
+	if (!envelopes_copied && sigdata->flags & IT_USE_INSTRUMENTS) {
 		for (i = 0; i < DUMB_IT_N_NNA_CHANNELS; i++) {
 			IT_PLAYING * playing = sigrenderer->playing[i];
 			if (!playing || playing->channel != channel) continue;
 			if (playing->flags & IT_PLAYING_SUSTAINOFF) continue;
-			vol_env_tick = playing->volume_envelope.tick;
+			if (nna != NNA_NOTE_CUT)
+				vol_env_tick = playing->volume_envelope.tick;
 			pan_env_tick = playing->pan_envelope.tick;
 			pitch_env_tick = playing->pitch_envelope.tick;
 			envelopes_copied = 1;