From abcb159c6fbafee60e4368612d507a0b1599cf90 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Mon, 10 Mar 2025 22:03:44 -0400 Subject: [PATCH] Fix sorting of levels. --- internal/menu/level.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/internal/menu/level.go b/internal/menu/level.go index e3958d89..c86152af 100644 --- a/internal/menu/level.go +++ b/internal/menu/level.go @@ -35,7 +35,6 @@ type LevelScreenItem int type LevelScreen struct { Controller *Controller Item LevelScreenItem - Text []string Level []string } @@ -63,12 +62,12 @@ func (s *LevelScreen) Init(m *Controller) error { } s.Level = append(s.Level, name) } - sort.Strings(s.Level) + sort.Slice(s.Level, func(i, j int) bool { + return s.levelInfo(i) < s.levelInfo(j) + }) - s.Text = make([]string, len(s.Level)) s.Item = LevelScreenItem(len(s.Level)) for i := range s.Level { - s.Text[i] = s.levelInfo(i) if s.Level[i] == engine.LevelName() { s.Item = LevelScreenItem(i) } @@ -116,7 +115,7 @@ func (s *LevelScreen) Draw(screen *ebiten.Image) { if s.Item == LevelScreenItem(i) { fg, bg = fgs, bgs } - font.ByName["Menu"].Draw(screen, locale.G.Get("%s: %s", level, s.Text[i]), m.Pos{X: CenterX, Y: ItemBaselineY(i, n+1)}, font.Center, fg, bg) + font.ByName["Menu"].Draw(screen, locale.G.Get("%s: %s", level, s.levelInfo(i)), m.Pos{X: CenterX, Y: ItemBaselineY(i, n+1)}, font.Center, fg, bg) } fg, bg := fgn, bgn