GUI: add setting to customize initial system name
This commit is contained in:
parent
8d88ac766c
commit
6051f92e68
|
|
@ -1100,6 +1100,7 @@ class FurnaceGUI {
|
||||||
String midiInDevice;
|
String midiInDevice;
|
||||||
String midiOutDevice;
|
String midiOutDevice;
|
||||||
String c163Name;
|
String c163Name;
|
||||||
|
String initialSysName;
|
||||||
std::vector<int> initialSys;
|
std::vector<int> initialSys;
|
||||||
|
|
||||||
Settings():
|
Settings():
|
||||||
|
|
@ -1203,7 +1204,8 @@ class FurnaceGUI {
|
||||||
audioDevice(""),
|
audioDevice(""),
|
||||||
midiInDevice(""),
|
midiInDevice(""),
|
||||||
midiOutDevice(""),
|
midiOutDevice(""),
|
||||||
c163Name("") {}
|
c163Name(""),
|
||||||
|
initialSysName("Sega Genesis/Mega Drive") {}
|
||||||
} settings;
|
} settings;
|
||||||
|
|
||||||
char finalLayoutPath[4096];
|
char finalLayoutPath[4096];
|
||||||
|
|
|
||||||
|
|
@ -252,9 +252,9 @@ void FurnaceGUI::drawSettings() {
|
||||||
|
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
|
|
||||||
ImGui::Text("Initial system/chips:");
|
ImGui::Text("Initial system:");
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button("Current systems")) {
|
if (ImGui::Button("Current system")) {
|
||||||
settings.initialSys.clear();
|
settings.initialSys.clear();
|
||||||
for (int i=0; i<e->song.systemLen; i++) {
|
for (int i=0; i<e->song.systemLen; i++) {
|
||||||
settings.initialSys.push_back(e->song.system[i]);
|
settings.initialSys.push_back(e->song.system[i]);
|
||||||
|
|
@ -262,6 +262,7 @@ void FurnaceGUI::drawSettings() {
|
||||||
settings.initialSys.push_back(e->song.systemPan[i]);
|
settings.initialSys.push_back(e->song.systemPan[i]);
|
||||||
settings.initialSys.push_back(e->song.systemFlags[i]);
|
settings.initialSys.push_back(e->song.systemFlags[i]);
|
||||||
}
|
}
|
||||||
|
settings.initialSysName=e->song.systemName;
|
||||||
}
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button("Randomize")) {
|
if (ImGui::Button("Randomize")) {
|
||||||
|
|
@ -282,6 +283,31 @@ void FurnaceGUI::drawSettings() {
|
||||||
settings.initialSys.push_back(0);
|
settings.initialSys.push_back(0);
|
||||||
settings.initialSys.push_back(0);
|
settings.initialSys.push_back(0);
|
||||||
}
|
}
|
||||||
|
// randomize system name
|
||||||
|
std::vector<String> wordPool[6];
|
||||||
|
for (size_t i=0; i<settings.initialSys.size()/4; i++) {
|
||||||
|
int wpPos=0;
|
||||||
|
String sName=e->getSystemName((DivSystem)settings.initialSys[i*4]);
|
||||||
|
String nameWord;
|
||||||
|
sName+=" ";
|
||||||
|
for (char& i: sName) {
|
||||||
|
if (i==' ') {
|
||||||
|
if (nameWord!="") {
|
||||||
|
wordPool[wpPos++].push_back(nameWord);
|
||||||
|
if (wpPos>=6) break;
|
||||||
|
nameWord="";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
nameWord+=i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
settings.initialSysName="";
|
||||||
|
for (int i=0; i<6; i++) {
|
||||||
|
if (wordPool[i].empty()) continue;
|
||||||
|
settings.initialSysName+=wordPool[i][rand()%wordPool[i].size()];
|
||||||
|
settings.initialSysName+=" ";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button("Reset to defaults")) {
|
if (ImGui::Button("Reset to defaults")) {
|
||||||
|
|
@ -294,7 +320,14 @@ void FurnaceGUI::drawSettings() {
|
||||||
settings.initialSys.push_back(32);
|
settings.initialSys.push_back(32);
|
||||||
settings.initialSys.push_back(0);
|
settings.initialSys.push_back(0);
|
||||||
settings.initialSys.push_back(0);
|
settings.initialSys.push_back(0);
|
||||||
|
settings.initialSysName="Sega Genesis/Mega Drive";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ImGui::Text("Name");
|
||||||
|
ImGui::SameLine();
|
||||||
|
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
|
||||||
|
ImGui::InputText("##InitSysName",&settings.initialSysName);
|
||||||
|
|
||||||
for (size_t i=0; i<settings.initialSys.size(); i+=4) {
|
for (size_t i=0; i<settings.initialSys.size(); i+=4) {
|
||||||
bool doRemove=false;
|
bool doRemove=false;
|
||||||
bool doInvert=settings.initialSys[i+1]&128;
|
bool doInvert=settings.initialSys[i+1]&128;
|
||||||
|
|
@ -2076,6 +2109,7 @@ void FurnaceGUI::syncSettings() {
|
||||||
settings.dragMovesSelection=e->getConfInt("dragMovesSelection",2);
|
settings.dragMovesSelection=e->getConfInt("dragMovesSelection",2);
|
||||||
settings.unsignedDetune=e->getConfInt("unsignedDetune",0);
|
settings.unsignedDetune=e->getConfInt("unsignedDetune",0);
|
||||||
settings.noThreadedInput=e->getConfInt("noThreadedInput",0);
|
settings.noThreadedInput=e->getConfInt("noThreadedInput",0);
|
||||||
|
settings.initialSysName=e->getConfString("initialSysName","");
|
||||||
|
|
||||||
clampSetting(settings.mainFontSize,2,96);
|
clampSetting(settings.mainFontSize,2,96);
|
||||||
clampSetting(settings.patFontSize,2,96);
|
clampSetting(settings.patFontSize,2,96);
|
||||||
|
|
@ -2286,6 +2320,7 @@ void FurnaceGUI::commitSettings() {
|
||||||
e->setConf("moveWindowTitle",settings.moveWindowTitle);
|
e->setConf("moveWindowTitle",settings.moveWindowTitle);
|
||||||
e->setConf("hiddenSystems",settings.hiddenSystems);
|
e->setConf("hiddenSystems",settings.hiddenSystems);
|
||||||
e->setConf("initialSys",e->encodeSysDesc(settings.initialSys));
|
e->setConf("initialSys",e->encodeSysDesc(settings.initialSys));
|
||||||
|
e->setConf("initialSysName",settings.initialSysName);
|
||||||
e->setConf("horizontalDataView",settings.horizontalDataView);
|
e->setConf("horizontalDataView",settings.horizontalDataView);
|
||||||
e->setConf("noMultiSystem",settings.noMultiSystem);
|
e->setConf("noMultiSystem",settings.noMultiSystem);
|
||||||
e->setConf("oldMacroVSlider",settings.oldMacroVSlider);
|
e->setConf("oldMacroVSlider",settings.oldMacroVSlider);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue