giga-refactor, part 9

new format saving
compatibility flags now part of own struct
This commit is contained in:
tildearrow 2025-11-16 01:40:19 -05:00
parent 9b3e6cea5b
commit 90a9a86e09
99 changed files with 1145 additions and 1047 deletions

View file

@ -3448,10 +3448,10 @@ void FurnaceGUI::insTabSample(DivInstrument* ins) {
const char* sampleTabName=_("Sample");
if (ins->type==DIV_INS_NES) sampleTabName=_("DPCM");
if (ImGui::BeginTabItem(sampleTabName)) {
if (ins->type==DIV_INS_NES && e->song.oldDPCM) {
if (ins->type==DIV_INS_NES && e->song.compatFlags.oldDPCM) {
ImGui::Text(_("new DPCM features disabled (compatibility)!"));
if (ImGui::Button(_("click here to enable them."))) {
e->song.oldDPCM=false;
e->song.compatFlags.oldDPCM=false;
MARK_MODIFIED;
}
ImGui::EndTabItem();
@ -4694,7 +4694,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) {
op.egt=egtOn;
}
if (egtOn) {
pushWarningColor(susOn && !e->song.linearPitch);
pushWarningColor(susOn && !e->song.compatFlags.linearPitch);
if (ImGui::Checkbox(_("Pitch control"),&susOn)) { PARAMETER
op.sus=susOn;
// HACK: reset zoom and scroll in fixed pitch macros so that they draw correctly
@ -4703,7 +4703,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) {
}
popWarningColor();
if (ImGui::IsItemHovered()) {
if (susOn && !e->song.linearPitch) {
if (susOn && !e->song.compatFlags.linearPitch) {
ImGui::SetTooltip(_("only works on linear pitch! go to Compatibility Flags > Pitch/Playback and set Pitch linearity to Full."));
} else {
ImGui::SetTooltip(_("use op's arpeggio and pitch macros control instead of block/f-num macros"));
@ -5470,7 +5470,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) {
P(CWSliderScalar("##FINE",ImGuiDataType_U8,&op.dvb,&_ZERO,&_FIFTEEN,tempID)); rightClickable
} else {
bool susOn=op.sus;
pushWarningColor(susOn && !e->song.linearPitch);
pushWarningColor(susOn && !e->song.compatFlags.linearPitch);
if (ImGui::Checkbox(_("Pitch control"),&susOn)) { PARAMETER
op.sus=susOn;
// HACK: reset zoom and scroll in fixed pitch macros so that they draw correctly
@ -5479,7 +5479,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) {
}
popWarningColor();
if (ImGui::IsItemHovered()) {
if (susOn && !e->song.linearPitch) {
if (susOn && !e->song.compatFlags.linearPitch) {
ImGui::SetTooltip(_("only works on linear pitch! go to Compatibility Flags > Pitch/Playback and set Pitch linearity to Full."));
} else {
ImGui::SetTooltip(_("use op's arpeggio and pitch macros control instead of block/f-num macros"));
@ -5793,7 +5793,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) {
bool susOn=op.sus;
if (fixedOn) {
ImGui::SameLine();
pushWarningColor(susOn && !e->song.linearPitch);
pushWarningColor(susOn && !e->song.compatFlags.linearPitch);
if (ImGui::Checkbox(_("Pitch control"),&susOn)) { PARAMETER
op.sus=susOn;
// HACK: reset zoom and scroll in fixed pitch macros so that they draw correctly
@ -5802,7 +5802,7 @@ void FurnaceGUI::insTabFM(DivInstrument* ins) {
}
popWarningColor();
if (ImGui::IsItemHovered()) {
if (susOn && !e->song.linearPitch) {
if (susOn && !e->song.compatFlags.linearPitch) {
ImGui::SetTooltip(_("only works on linear pitch! go to Compatibility Flags > Pitch/Playback and set Pitch linearity to Full."));
} else {
ImGui::SetTooltip(_("use op's arpeggio and pitch macros control instead of block/f-num macros"));