diff --git a/src/gui/doAction.cpp b/src/gui/doAction.cpp index b493ceb2b..4f350c93d 100644 --- a/src/gui/doAction.cpp +++ b/src/gui/doAction.cpp @@ -980,37 +980,12 @@ void FurnaceGUI::doAction(int what) { } } - if (makeInsTypeList.size()>1) { - displayInsTypeList=true; - displayInsTypeListMakeInsSample=-2; - break; + if (makeInsTypeList.empty()) { + makeInsTypeList.push_back(DIV_INS_AMIGA); } - DivInstrumentType insType=DIV_INS_AMIGA; - if (!makeInsTypeList.empty()) { - insType=makeInsTypeList[0]; - } - - curIns=e->addInstrument(cursor.xCoarse); - if (curIns==-1) { - showError("too many instruments!"); - } else { - e->song.ins[curIns]->type=insType; - e->song.ins[curIns]->name="Drum Kit"; - e->song.ins[curIns]->amiga.useNoteMap=true; - if (insType!=DIV_INS_AMIGA) e->song.ins[curIns]->amiga.useSample=true; - - for (int i=0; i<120; i++) { - e->song.ins[curIns]->amiga.noteMap[i].freq=48; - e->song.ins[curIns]->amiga.noteMap[i].map=i; - e->song.ins[curIns]->amiga.noteMap[i].dpcmFreq=15; - } - - nextWindow=GUI_WINDOW_INS_EDIT; - MARK_MODIFIED; - wavePreviewInit=true; - updateFMPreview=true; - } + displayInsTypeList=true; + displayInsTypeListMakeInsSample=-2; break; } diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 60bddd006..ac0e190f1 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -5901,7 +5901,22 @@ bool FurnaceGUI::loop() { if (curIns==-1) { showError("too many instruments!"); } else { - if (displayInsTypeListMakeInsSample>=0 && displayInsTypeListMakeInsSample<(int)e->song.sample.size()) { + if (displayInsTypeListMakeInsSample==-2) { + e->song.ins[curIns]->type=i; + e->song.ins[curIns]->name="Drum Kit"; + e->song.ins[curIns]->amiga.useNoteMap=true; + if (i!=DIV_INS_AMIGA) e->song.ins[curIns]->amiga.useSample=true; + + for (int j=0; j<120; j++) { + e->song.ins[curIns]->amiga.noteMap[i].freq=48; + e->song.ins[curIns]->amiga.noteMap[i].map=j; + e->song.ins[curIns]->amiga.noteMap[i].dpcmFreq=15; + } + + nextWindow=GUI_WINDOW_INS_EDIT; + wavePreviewInit=true; + updateFMPreview=true; + } else if (displayInsTypeListMakeInsSample>=0 && displayInsTypeListMakeInsSample<(int)e->song.sample.size()) { e->song.ins[curIns]->type=i; e->song.ins[curIns]->name=e->song.sample[displayInsTypeListMakeInsSample]->name; e->song.ins[curIns]->amiga.initSample=displayInsTypeListMakeInsSample;