From 5b170f75ec0b334aa970d8b871633b127748a372 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 24 Feb 2024 18:12:02 -0500 Subject: [PATCH] fix chanShowChanOsc-related bugs when swapping or stomping channels/systems --- src/engine/engine.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/engine/engine.cpp b/src/engine/engine.cpp index fec69a3f6..eec725422 100644 --- a/src/engine/engine.cpp +++ b/src/engine/engine.cpp @@ -636,6 +636,7 @@ void DivEngine::swapChannels(int src, int dest) { String prevChanName=curSubSong->chanName[src]; String prevChanShortName=curSubSong->chanShortName[src]; bool prevChanShow=curSubSong->chanShow[src]; + bool prevChanShowChanOsc=curSubSong->chanShowChanOsc[src]; unsigned char prevChanCollapse=curSubSong->chanCollapse[src]; curSubSong->chanName[src]=curSubSong->chanName[dest]; @@ -645,6 +646,7 @@ void DivEngine::swapChannels(int src, int dest) { curSubSong->chanName[dest]=prevChanName; curSubSong->chanShortName[dest]=prevChanShortName; curSubSong->chanShow[dest]=prevChanShow; + curSubSong->chanShowChanOsc[dest]=prevChanShowChanOsc; curSubSong->chanCollapse[dest]=prevChanCollapse; } @@ -658,6 +660,7 @@ void DivEngine::stompChannel(int ch) { curSubSong->chanName[ch]=""; curSubSong->chanShortName[ch]=""; curSubSong->chanShow[ch]=true; + curSubSong->chanShowChanOsc[ch]=true; curSubSong->chanCollapse[ch]=false; } @@ -804,6 +807,7 @@ int DivEngine::duplicateSubSong(int index) { theCopy->orders=theOrig->orders; memcpy(theCopy->chanShow,theOrig->chanShow,DIV_MAX_CHANS*sizeof(bool)); + memcpy(theCopy->chanShowChanOsc,theOrig->chanShowChanOsc,DIV_MAX_CHANS*sizeof(bool)); memcpy(theCopy->chanCollapse,theOrig->chanCollapse,DIV_MAX_CHANS); for (int i=0; ichanName[j]; prevChanShortName[j]=song.subsong[i]->chanShortName[j]; prevChanShow[j]=song.subsong[i]->chanShow[j]; + prevChanShowChanOsc[j]=song.subsong[i]->chanShowChanOsc[j]; prevChanCollapse[j]=song.subsong[i]->chanCollapse[j]; } @@ -1347,6 +1353,7 @@ void DivEngine::swapSystemUnsafe(int src, int dest, bool preserveOrder) { song.subsong[i]->chanName[j]=prevChanName[swappedChannels[j]]; song.subsong[i]->chanShortName[j]=prevChanShortName[swappedChannels[j]]; song.subsong[i]->chanShow[j]=prevChanShow[swappedChannels[j]]; + song.subsong[i]->chanShowChanOsc[j]=prevChanShowChanOsc[swappedChannels[j]]; song.subsong[i]->chanCollapse[j]=prevChanCollapse[swappedChannels[j]]; } }