Skip to content

Commit 0e68bbf

Browse files
committed
Variation fallback & add chartdata only difficulties to difficulty toolbox
1 parent a2a1b0b commit 0e68bbf

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

source/funkin/ui/debug/charting/handlers/ChartEditorImportExportHandler.hx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,16 @@ class ChartEditorImportExportHandler
118118
state.songMetadata = newSongMetadata;
119119
state.songChartData = newSongChartData;
120120

121-
if (!state.songMetadata.exists(state.selectedVariation))
121+
var variationMetadata:Null<SongMetadata> = state.songMetadata.get(state.selectedVariation);
122+
if (variationMetadata == null)
122123
{
123-
state.selectedVariation = Constants.DEFAULT_VARIATION;
124+
// Use the default variation, or the first available variation if that doesn't exist for some reason.
125+
if (state.availableDifficulties.indexOf(Constants.DEFAULT_VARIATION) < 0) state.selectedVariation = state.availableVariations[0];
126+
else state.selectedVariation = Constants.DEFAULT_VARIATION;
127+
128+
variationMetadata = state.songMetadata.get(state.selectedVariation);
124129
}
130+
125131
// Use the first available difficulty as a fallback if the currently selected one cannot be found.
126132
if (state.availableDifficulties.indexOf(state.selectedDifficulty) < 0) state.selectedDifficulty = state.availableDifficulties[0];
127133

source/funkin/ui/debug/charting/toolboxes/ChartEditorDifficultyToolbox.hx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import haxe.ui.components.Button;
44
import haxe.ui.containers.dialogs.Dialogs;
55
import haxe.ui.containers.dialogs.Dialog.DialogButton;
66
import funkin.data.song.SongData.SongMetadata;
7+
import funkin.data.song.SongData.SongChartData;
78
import funkin.util.FileUtil;
89
import haxe.ui.containers.dialogs.MessageBox.MessageBoxType;
910
import funkin.play.song.SongSerializer;
@@ -133,6 +134,16 @@ class ChartEditorDifficultyToolbox extends ChartEditorBaseToolbox
133134

134135
var difficultyList:Array<String> = variationMetadata.playData.difficulties;
135136

137+
var variationChartdata:Null<SongChartData> = chartEditorState.songChartData.get(curVariation);
138+
if(variationChartdata != null)
139+
{
140+
var keys:Array<String> = [for (x in variationChartdata.notes.keys()) x];
141+
for (key in keys)
142+
{
143+
difficultyList.pushUnique(key);
144+
}
145+
}
146+
136147
for (difficulty in difficultyList)
137148
{
138149
var _treeDifficulty:TreeViewNode = treeVariation.addNode(

0 commit comments

Comments
 (0)