GUI: add "set effect" option to randomize
This commit is contained in:
parent
096d9ebba8
commit
4019066a64
|
@ -1427,7 +1427,7 @@ void FurnaceGUI::doScale(float top) {
|
||||||
makeUndo(GUI_UNDO_PATTERN_SCALE);
|
makeUndo(GUI_UNDO_PATTERN_SCALE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FurnaceGUI::doRandomize(int bottom, int top, bool mode) {
|
void FurnaceGUI::doRandomize(int bottom, int top, bool mode, bool eff, int effVal) {
|
||||||
finishSelection();
|
finishSelection();
|
||||||
prepareUndo(GUI_UNDO_PATTERN_RANDOMIZE);
|
prepareUndo(GUI_UNDO_PATTERN_RANDOMIZE);
|
||||||
|
|
||||||
|
@ -1463,6 +1463,9 @@ void FurnaceGUI::doRandomize(int bottom, int top, bool mode) {
|
||||||
} else {
|
} else {
|
||||||
pat->data[j][iFine+1]=value;
|
pat->data[j][iFine+1]=value;
|
||||||
}
|
}
|
||||||
|
if (eff && iFine>2 && (iFine&1)) {
|
||||||
|
pat->data[j][iFine+1]=effVal;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3166,9 +3166,17 @@ void FurnaceGUI::editOptions(bool topMenu) {
|
||||||
if (randomizeMax>255) randomizeMax=255;
|
if (randomizeMax>255) randomizeMax=255;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// TODO: add an option to set effect to specific value?
|
if (selStart.xFine>2 || selEnd.xFine>2 || selStart.xCoarse!=selEnd.xCoarse) {
|
||||||
|
ImGui::Checkbox(_("Set effect"),&randomizeEffect);
|
||||||
|
if (randomizeEffect) {
|
||||||
|
if (ImGui::InputScalar(_("Effect"),ImGuiDataType_S32,&randomizeEffectVal,&_ONE,&_SIXTEEN,"%.2X",ImGuiInputTextFlags_CharsHexadecimal)) {
|
||||||
|
if (randomizeEffectVal<0) randomizeEffectVal=0;
|
||||||
|
if (randomizeEffectVal>255) randomizeEffectVal=255;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if (ImGui::Button(_("Randomize"))) {
|
if (ImGui::Button(_("Randomize"))) {
|
||||||
doRandomize(randomizeMin,randomizeMax,randomMode);
|
doRandomize(randomizeMin,randomizeMax,randomMode,randomizeEffect,randomizeEffectVal);
|
||||||
ImGui::CloseCurrentPopup();
|
ImGui::CloseCurrentPopup();
|
||||||
}
|
}
|
||||||
ImGui::EndMenu();
|
ImGui::EndMenu();
|
||||||
|
@ -8671,11 +8679,13 @@ FurnaceGUI::FurnaceGUI():
|
||||||
fadeMin(0),
|
fadeMin(0),
|
||||||
fadeMax(255),
|
fadeMax(255),
|
||||||
collapseAmount(2),
|
collapseAmount(2),
|
||||||
|
randomizeEffectVal(0),
|
||||||
playheadY(0.0f),
|
playheadY(0.0f),
|
||||||
scaleMax(100.0f),
|
scaleMax(100.0f),
|
||||||
fadeMode(false),
|
fadeMode(false),
|
||||||
randomMode(false),
|
randomMode(false),
|
||||||
haveHitBounds(false),
|
haveHitBounds(false),
|
||||||
|
randomizeEffect(false),
|
||||||
pendingStepUpdate(0),
|
pendingStepUpdate(0),
|
||||||
oldOrdersLen(0),
|
oldOrdersLen(0),
|
||||||
sampleZoom(1.0),
|
sampleZoom(1.0),
|
||||||
|
|
|
@ -2548,10 +2548,10 @@ class FurnaceGUI {
|
||||||
ImVec2 noteCellSize, insCellSize, volCellSize, effectCellSize, effectValCellSize;
|
ImVec2 noteCellSize, insCellSize, volCellSize, effectCellSize, effectValCellSize;
|
||||||
SelectionPoint sel1, sel2;
|
SelectionPoint sel1, sel2;
|
||||||
int dummyRows;
|
int dummyRows;
|
||||||
int transposeAmount, randomizeMin, randomizeMax, fadeMin, fadeMax, collapseAmount;
|
int transposeAmount, randomizeMin, randomizeMax, fadeMin, fadeMax, collapseAmount, randomizeEffectVal;
|
||||||
float playheadY;
|
float playheadY;
|
||||||
float scaleMax;
|
float scaleMax;
|
||||||
bool fadeMode, randomMode, haveHitBounds;
|
bool fadeMode, randomMode, haveHitBounds, randomizeEffect;
|
||||||
signed char pendingStepUpdate;
|
signed char pendingStepUpdate;
|
||||||
|
|
||||||
int oldOrdersLen;
|
int oldOrdersLen;
|
||||||
|
@ -2986,7 +2986,7 @@ class FurnaceGUI {
|
||||||
void doFade(int p0, int p1, bool mode);
|
void doFade(int p0, int p1, bool mode);
|
||||||
void doInvertValues();
|
void doInvertValues();
|
||||||
void doScale(float top);
|
void doScale(float top);
|
||||||
void doRandomize(int bottom, int top, bool mode);
|
void doRandomize(int bottom, int top, bool mode, bool eff, int effVal);
|
||||||
void doFlip();
|
void doFlip();
|
||||||
void doCollapse(int divider, const SelectionPoint& sStart, const SelectionPoint& sEnd);
|
void doCollapse(int divider, const SelectionPoint& sStart, const SelectionPoint& sEnd);
|
||||||
void doExpand(int multiplier, const SelectionPoint& sStart, const SelectionPoint& sEnd);
|
void doExpand(int multiplier, const SelectionPoint& sStart, const SelectionPoint& sEnd);
|
||||||
|
|
Loading…
Reference in a new issue