fix chanShowChanOsc-related bugs
when swapping or stomping channels/systems
This commit is contained in:
parent
f9ba6809e9
commit
5b170f75ec
|
|
@ -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; i<DIV_MAX_CHANS; i++) {
|
||||
|
|
@ -1323,6 +1327,7 @@ void DivEngine::swapSystemUnsafe(int src, int dest, bool preserveOrder) {
|
|||
String prevChanName[DIV_MAX_CHANS];
|
||||
String prevChanShortName[DIV_MAX_CHANS];
|
||||
bool prevChanShow[DIV_MAX_CHANS];
|
||||
bool prevChanShowChanOsc[DIV_MAX_CHANS];
|
||||
unsigned char prevChanCollapse[DIV_MAX_CHANS];
|
||||
|
||||
for (int j=0; j<tchans; j++) {
|
||||
|
|
@ -1334,6 +1339,7 @@ void DivEngine::swapSystemUnsafe(int src, int dest, bool preserveOrder) {
|
|||
prevChanName[j]=song.subsong[i]->chanName[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]];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue