diff --git a/source/funkin/ui/debug/char/components/dialogs/ResultsAnimDialog.hx b/source/funkin/ui/debug/char/components/dialogs/ResultsAnimDialog.hx index 056074b5c7..e2717d3b30 100644 --- a/source/funkin/ui/debug/char/components/dialogs/ResultsAnimDialog.hx +++ b/source/funkin/ui/debug/char/components/dialogs/ResultsAnimDialog.hx @@ -41,7 +41,9 @@ class ResultsAnimDialog extends DefaultPageDialog rankDropdown.onChange = function(_) { if (previousRank == currentRank) return; - daPage.curRankInt = rankDropdown.selectedIndex; + daPage.clearSprites(); + changeRankPreview(); + daPage.playAnimation(); } rankAnimationBox.useAnimationData(rankAnimationDataMap[currentRank]); @@ -50,15 +52,7 @@ class ResultsAnimDialog extends DefaultPageDialog public function changeRankPreview():Void { - try - { - updateRankAnimations(previousRank); - } - catch (e) - { - // do nothing, janky fix around null object reference - } - + updateRankAnimations(previousRank); rankAnimationBox.useAnimationData(rankAnimationDataMap[currentRank]); previousRank = currentRank; } @@ -172,9 +166,9 @@ class ResultsAnimDialog extends DefaultPageDialog function get_currentRank():ScoringRank { - if (rankDropdown.selectedItem == null) return PERFECT_GOLD; + if (rankDropdown.safeSelectedItem == null) return PERFECT_GOLD; - switch (rankDropdown.selectedItem.text) + switch (rankDropdown.safeSelectedItem.text) { case "Perfect Gold": return PERFECT_GOLD; diff --git a/source/funkin/ui/debug/char/pages/CharCreatorResultsPage.hx b/source/funkin/ui/debug/char/pages/CharCreatorResultsPage.hx index 2f946a8515..b89fe829a7 100644 --- a/source/funkin/ui/debug/char/pages/CharCreatorResultsPage.hx +++ b/source/funkin/ui/debug/char/pages/CharCreatorResultsPage.hx @@ -41,7 +41,6 @@ class CharCreatorResultsPage extends CharCreatorDefaultPage var rankMusicMap:Map = []; - public var curRankInt(default, set):Int = 0; public var characterAtlasAnimationsMap:Map= ALL_RANKS.length) supposedInt = 0; - curRankInt = supposedInt; - } + var supposedInd = animDialog.rankDropdown.selectedIndex + 1; + if (supposedInd >= animDialog.rankDropdown.dataSource.size) supposedInd = 0; + animDialog.rankDropdown.selectedIndex = supposedInd; - labelRank.onRightClick = function(_) { - var supposedInt = curRankInt - 1; - if (supposedInt < 0) supposedInt = ALL_RANKS.length - 1; - curRankInt = supposedInt; + clearSprites(); + animDialog.changeRankPreview(); + playAnimation(); } - } - - function set_curRankInt(value:Int) - { - if (this.curRankInt == value) return this.curRankInt; - - this.curRankInt = value; - var rankAnimDialog = cast(dialogMap[RankAnims], ResultsAnimDialog); - if (rankAnimDialog.rankDropdown.selectedIndex != value) rankAnimDialog.rankDropdown.selectedIndex = value; - - clearSprites(); - rankAnimDialog.changeRankPreview(); - playAnimation(); + labelRank.onRightClick = function(_) { + var supposedInd = animDialog.rankDropdown.selectedIndex - 1; + if (supposedInd < 0) supposedInd = animDialog.rankDropdown.dataSource.size - 1; + animDialog.rankDropdown.selectedIndex = supposedInd; - return value; + clearSprites(); + animDialog.changeRankPreview(); + playAnimation(); + } } override public function performCleanup():Void { var animDialog:ResultsAnimDialog = cast dialogMap[RankAnims]; - rankMusicMap[ALL_RANKS[curRankInt]].stop(); + rankMusicMap[animDialog.currentRank].stop(); FlxG.sound.music.volume = 1; } @@ -156,9 +149,9 @@ class CharCreatorResultsPage extends CharCreatorDefaultPage } } - public function clearSprites() + public function clearSprites():Void { - for (r => array in characterAtlasAnimationsMap) + for (_ => array in characterAtlasAnimationsMap) { for (atlas in array) { @@ -166,7 +159,7 @@ class CharCreatorResultsPage extends CharCreatorDefaultPage } } - for (r => array in characterSparrowAnimationsMap) + for (_ => array in characterSparrowAnimationsMap) { for (sparrow in array) { @@ -188,9 +181,9 @@ class CharCreatorResultsPage extends CharCreatorDefaultPage var animDialog:ResultsAnimDialog = cast dialogMap[RankAnims]; - var rank = ALL_RANKS[curRankInt]; + var rank = animDialog.currentRank; - labelRank.text = Std.string(rank); + labelRank.text = animDialog.rankDropdown.safeSelectedItem.text; var newMusic = rankMusicMap[rank]; previousMusic = newMusic;