diff --git a/scripts/songselect/chalwheel.lua b/scripts/songselect/chalwheel.lua index d3debd7..b735bb0 100644 --- a/scripts/songselect/chalwheel.lua +++ b/scripts/songselect/chalwheel.lua @@ -64,24 +64,24 @@ local legendTable = { } } local grades = { - { ["max"] = 6999999, ["image"] = gfx.CreateSkinImage("common/grades/D.png", 0) }, - { ["max"] = 7999999, ["image"] = gfx.CreateSkinImage("common/grades/C.png", 0) }, - { ["max"] = 8699999, ["image"] = gfx.CreateSkinImage("common/grades/B.png", 0) }, - { ["max"] = 8999999, ["image"] = gfx.CreateSkinImage("common/grades/A.png", 0) }, - { ["max"] = 9299999, ["image"] = gfx.CreateSkinImage("common/grades/A+.png", 0) }, - { ["max"] = 9499999, ["image"] = gfx.CreateSkinImage("common/grades/AA.png", 0) }, - { ["max"] = 9699999, ["image"] = gfx.CreateSkinImage("common/grades/AA+.png", 0) }, - { ["max"] = 9799999, ["image"] = gfx.CreateSkinImage("common/grades/AAA.png", 0) }, - { ["max"] = 9899999, ["image"] = gfx.CreateSkinImage("common/grades/AAA+.png", 0) }, - { ["max"] = 99999999, ["image"] = gfx.CreateSkinImage("common/grades/S.png", 0) } + ["D"] = gfx.CreateSkinImage("common/grades/D.png", 0), + ["C"] = gfx.CreateSkinImage("common/grades/C.png", 0), + ["B"] = gfx.CreateSkinImage("common/grades/B.png", 0), + ["A"] = gfx.CreateSkinImage("common/grades/A.png", 0), + ["A+"] = gfx.CreateSkinImage("common/grades/A+.png", 0), + ["AA"] = gfx.CreateSkinImage("common/grades/AA.png", 0), + ["AA+"] = gfx.CreateSkinImage("common/grades/AA+.png", 0), + ["AAA"] = gfx.CreateSkinImage("common/grades/AAA.png", 0), + ["AAA+"] = gfx.CreateSkinImage("common/grades/AAA+.png", 0), + ["S"] = gfx.CreateSkinImage("common/grades/S.png", 0) } local badges = { - gfx.CreateSkinImage("song_select/medal/played.png", 1), - gfx.CreateSkinImage("song_select/medal/clear.png", 1), - gfx.CreateSkinImage("song_select/medal/hard.png", 1), - gfx.CreateSkinImage("song_select/medal/uc.png", 1), - gfx.CreateSkinImage("song_select/medal/puc.png", 1) + gfx.CreateSkinImage("song_select/medal/played.png", gfx.IMAGE_GENERATE_MIPMAPS), + gfx.CreateSkinImage("song_select/medal/clear.png", gfx.IMAGE_GENERATE_MIPMAPS), + gfx.CreateSkinImage("song_select/medal/hard.png", gfx.IMAGE_GENERATE_MIPMAPS), + gfx.CreateSkinImage("song_select/medal/uc.png", gfx.IMAGE_GENERATE_MIPMAPS), + gfx.CreateSkinImage("song_select/medal/puc.png", gfx.IMAGE_GENERATE_MIPMAPS) } local passStates = { @@ -293,9 +293,19 @@ draw_challenge = function(challenge, x, y, w, h, selected) local scoreUpperSize = 0.2 * textSizeCorrection local scoreSize = 0.125 * textSizeCorrection + local badgeOffsetX = x + 0.886 * w + local badgeOffsetY = y + 0.8 * h + local badgeSize = 0.155 * h + + local gradeOffsetX = x + 0.933 * w + local gradeOffsetY = y + 0.798 * h + local gradeSize = 0.163 * h + local percent = challengeCache[challenge.id]["percent"] local scoreUpper = math.floor(challengeCache[challenge.id]["total_score"] / 10000) local score = challengeCache[challenge.id]["total_score"] + local badge = challenge.topBadge and badges[challenge.topBadge] or nil + local grade = challenge.grade and grades[challenge.grade] or nil if selected then percentOffsetX = x + 11 / 24 * w @@ -304,10 +314,18 @@ draw_challenge = function(challenge, x, y, w, h, selected) scoreUpperOffsetX = x + w * 0.63 scoreUpperOffsetY = y + h * 0.82 - scoreOffsetX = x + w * 0.755 + scoreOffsetX = x + w * 0.762 scoreOffsetY = y + h * 0.835 scoreUpperSize = 0.12 * textSizeCorrection scoreSize = 0.09 * textSizeCorrection + + badgeOffsetX = x + 0.86 * w + badgeOffsetY = y + 0.715 * h + badgeSize = 0.165 * h + + gradeOffsetX = x + 0.927 * w + gradeOffsetY = y + 0.708 * h + gradeSize = 0.175 * h end Numbers.draw_number(percentOffsetX, percentOffsetY, 1, percent, 3, scoreNumber, true, percentSize, 1) @@ -324,8 +342,13 @@ draw_challenge = function(challenge, x, y, w, h, selected) -- TODO: Missing completion bar - -- TODO: Missing completion badge (COMP, HARD, UC, PUC) - -- TODO: Missing completion grade (S+, S, AAA+, etc.) + if badge then + gfx.BeginPath() + gfx.ImageRect(badgeOffsetX, badgeOffsetY, 93/81 * badgeSize, badgeSize, badge, 1, 0) + + gfx.BeginPath() + gfx.ImageRect(gradeOffsetX, gradeOffsetY, gradeSize, gradeSize, grade, 1, 0) + end ---------------------------------------------------------- -- draw charts section