primitive effect sorting
This commit is contained in:
		
							parent
							
								
									a3a004477d
								
							
						
					
					
						commit
						1c94975a0a
					
				| 
						 | 
				
			
			@ -12,6 +12,40 @@ void FurnaceGUI::drawEffectList() {
 | 
			
		|||
  ImGui::SetNextWindowSizeConstraints(ImVec2(60.0f*dpiScale,20.0f*dpiScale),ImVec2(canvasW,canvasH));
 | 
			
		||||
  if (ImGui::Begin("Effect List",&effectListOpen,globalWinFlags)) {
 | 
			
		||||
    ImGui::Text("Chip at cursor: %s",e->getSystemName(e->sysOfChan[cursor.xCoarse]));
 | 
			
		||||
    ImGui::Text("Sort Effects:");
 | 
			
		||||
    ImGui::Checkbox("All",&effectShowAll);
 | 
			
		||||
    if (effectShowAll) {
 | 
			
		||||
      effectShowMisc = true;
 | 
			
		||||
      effectShowPanning = true;
 | 
			
		||||
      effectShowPitch = true;
 | 
			
		||||
      effectShowVolume = true;
 | 
			
		||||
      effectShowSong = true;
 | 
			
		||||
      effectShowTime = true;
 | 
			
		||||
      effectShowSpeed = true;
 | 
			
		||||
      effectShowSysPrimary = true;
 | 
			
		||||
      effectShowSysSecondary = true;
 | 
			
		||||
    }
 | 
			
		||||
    ImGui::SameLine();
 | 
			
		||||
    ImGui::Checkbox("Pitch",&effectShowPitch);
 | 
			
		||||
    ImGui::SameLine();
 | 
			
		||||
    ImGui::Checkbox("Song",&effectShowSong);
 | 
			
		||||
    ImGui::SameLine();
 | 
			
		||||
    ImGui::Checkbox("Time",&effectShowTime);
 | 
			
		||||
    ImGui::SameLine();
 | 
			
		||||
    ImGui::Checkbox("Speed",&effectShowSpeed);
 | 
			
		||||
    ImGui::SameLine();
 | 
			
		||||
    ImGui::Checkbox("Panning",&effectShowPanning);
 | 
			
		||||
    // ImGui::SameLine();
 | 
			
		||||
    ImGui::Checkbox("Volume",&effectShowVolume);
 | 
			
		||||
    ImGui::SameLine();
 | 
			
		||||
    ImGui::Checkbox("System (primary)",&effectShowSysPrimary);
 | 
			
		||||
    ImGui::SameLine();
 | 
			
		||||
    ImGui::Checkbox("System (secondary)",&effectShowSysSecondary);
 | 
			
		||||
    ImGui::SameLine();
 | 
			
		||||
    ImGui::Checkbox("Miscellanious",&effectShowMisc);
 | 
			
		||||
 | 
			
		||||
    effectShowAll = effectShowMisc && effectShowPanning && effectShowPitch && effectShowVolume && effectShowSong && effectShowTime && effectShowSpeed && effectShowSysPrimary && effectShowSysSecondary;
 | 
			
		||||
    
 | 
			
		||||
    if (ImGui::BeginTable("effectList",2)) {
 | 
			
		||||
      ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed);
 | 
			
		||||
      ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch);
 | 
			
		||||
| 
						 | 
				
			
			@ -25,11 +59,25 @@ void FurnaceGUI::drawEffectList() {
 | 
			
		|||
      const char* prevName=NULL;
 | 
			
		||||
      for (int i=0; i<256; i++) {
 | 
			
		||||
        const char* name=e->getEffectDesc(i,cursor.xCoarse);
 | 
			
		||||
        bool effectShow = true;
 | 
			
		||||
        switch (fxColors[i]) {
 | 
			
		||||
          case GUI_COLOR_PATTERN_EFFECT_MISC: effectShow = effectShowMisc; break;
 | 
			
		||||
          case GUI_COLOR_PATTERN_EFFECT_SONG: effectShow = effectShowSong; break;
 | 
			
		||||
          case GUI_COLOR_PATTERN_EFFECT_SPEED: effectShow = effectShowSpeed; break;
 | 
			
		||||
          case GUI_COLOR_PATTERN_EFFECT_TIME: effectShow = effectShowTime; break;
 | 
			
		||||
          case GUI_COLOR_PATTERN_EFFECT_PITCH: effectShow = effectShowPitch; break;
 | 
			
		||||
          case GUI_COLOR_PATTERN_EFFECT_PANNING: effectShow = effectShowPanning; break;
 | 
			
		||||
          case GUI_COLOR_PATTERN_EFFECT_VOLUME: effectShow = effectShowVolume; break;
 | 
			
		||||
          case GUI_COLOR_PATTERN_EFFECT_SYS_PRIMARY: effectShow = effectShowSysPrimary; break;
 | 
			
		||||
          case GUI_COLOR_PATTERN_EFFECT_SYS_SECONDARY: effectShow = effectShowSysSecondary; break;
 | 
			
		||||
          default: effectShow = true; break;
 | 
			
		||||
        }
 | 
			
		||||
        // effectShow = effectShow && effectShowAll;
 | 
			
		||||
        if (name==prevName) {
 | 
			
		||||
          continue;
 | 
			
		||||
        }
 | 
			
		||||
        prevName=name;
 | 
			
		||||
        if (name!=NULL) {
 | 
			
		||||
        if (name!=NULL && effectShow) {
 | 
			
		||||
          ImGui::TableNextRow();
 | 
			
		||||
          ImGui::TableNextColumn();
 | 
			
		||||
          ImGui::PushFont(patFont);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7153,6 +7153,17 @@ FurnaceGUI::FurnaceGUI():
 | 
			
		|||
  pianoView(PIANO_LAYOUT_STANDARD),
 | 
			
		||||
  pianoInputPadMode(PIANO_INPUT_PAD_DISABLE),
 | 
			
		||||
#endif
 | 
			
		||||
  //effect sorting
 | 
			
		||||
  effectShowAll(true),
 | 
			
		||||
  effectShowPitch(true),
 | 
			
		||||
  effectShowVolume(true),
 | 
			
		||||
  effectShowPanning(true),
 | 
			
		||||
  effectShowSong(true),
 | 
			
		||||
  effectShowTime(true),
 | 
			
		||||
  effectShowSpeed(true),
 | 
			
		||||
  effectShowSysPrimary(true),
 | 
			
		||||
  effectShowSysSecondary(true),
 | 
			
		||||
  effectShowMisc(true),
 | 
			
		||||
  hasACED(false),
 | 
			
		||||
  waveGenBaseShape(0),
 | 
			
		||||
  waveInterpolation(0),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1729,6 +1729,9 @@ class FurnaceGUI {
 | 
			
		|||
  bool subSongsOpen, findOpen, spoilerOpen, patManagerOpen, sysManagerOpen, clockOpen, speedOpen;
 | 
			
		||||
  bool groovesOpen, introMonOpen;
 | 
			
		||||
 | 
			
		||||
  //effect sorting
 | 
			
		||||
  bool effectShowAll, effectShowPitch, effectShowVolume, effectShowPanning, effectShowSong, effectShowTime, effectShowSpeed, effectShowSysPrimary, effectShowSysSecondary, effectShowMisc;
 | 
			
		||||
 | 
			
		||||
  bool basicMode, shortIntro;
 | 
			
		||||
  bool insListDir, waveListDir, sampleListDir;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue