dan select: no 自己ベスト row when there is no best #67
No files matched your search
Binary file not shown.
Binary file not shown.
@@ -209,5 +209,6 @@
|
|||||||
"x": 538,
|
"x": 538,
|
||||||
"y": 287
|
"y": 287
|
||||||
},
|
},
|
||||||
"exam_best_pill": {}
|
"exam_best_pill": {},
|
||||||
|
"exam_gauge_best_pill": {}
|
||||||
}
|
}
|
||||||
@@ -410,11 +410,12 @@ function DanSelect:draw_cursor(pos, now_ms, moved_ms)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Each exam's 自己ベスト row, as on the cabinet: a white pill under the value with the label
|
-- Each exam's 自己ベスト row, as on the cabinet: a white pill under the value with the label
|
||||||
-- on its left and the saved best on its right (box:exam_best / exam_song_best; an engine
|
-- on its left and the saved best on its right (box:exam_best / exam_song_best). With no best
|
||||||
-- without them, or a course never played, shows the label alone). The gauge box's pill is
|
-- (a course never played, or an engine without them) the row is not drawn at all, pill
|
||||||
-- part of exam_gauge_box; the right-hand boxes get yellow_box/exam_best_pill, one per song
|
-- included. The gauge box gets yellow_box/exam_gauge_best_pill, the right-hand boxes
|
||||||
-- segment. The boxes are walked as the parent's draw_exam_grid walks them.
|
-- yellow_box/exam_best_pill, one per song segment. The boxes are walked as the parent's
|
||||||
local BEST_GAUGE = { x = 10, y = 116, w = 301 } -- the pill in exam_gauge_box, from the box
|
-- draw_exam_grid walks them.
|
||||||
|
local BEST_GAUGE = { x = 10, y = 116, w = 301 } -- exam_gauge_best_pill, from the box
|
||||||
local BEST_RIGHT = { x = 11, y = 86, w = 317 } -- exam_best_pill, from the box (+ seg dx)
|
local BEST_RIGHT = { x = 11, y = 86, w = 317 } -- exam_best_pill, from the box (+ seg dx)
|
||||||
local BEST_H = 31
|
local BEST_H = 31
|
||||||
local BEST_LABEL_X, BEST_VALUE_R = 8, 14 -- label from the pill's left, value from its right
|
local BEST_LABEL_X, BEST_VALUE_R = 8, 14 -- label from the pill's left, value from its right
|
||||||
@@ -438,25 +439,26 @@ local function call(box, name, ...)
|
|||||||
return ok2 and v or nil
|
return ok2 and v or nil
|
||||||
end
|
end
|
||||||
|
|
||||||
local function draw_best_row(box, value, etype, px, py, pw, f)
|
local function draw_best_row(pill, value, etype, px, py, pw, f)
|
||||||
|
if value == nil then return end
|
||||||
|
if pill then tex.draw_texture(pill, { x = px, y = py, fade = f }) end
|
||||||
local label = best_text("dan_exam_best_label", tex.skin_text("dan_exam_best_label"))
|
local label = best_text("dan_exam_best_label", tex.skin_text("dan_exam_best_label"))
|
||||||
if label then
|
if label then
|
||||||
label:draw({ x = px + BEST_LABEL_X, y = py + (BEST_H - label.height) / 2, fade = f })
|
label:draw({ x = px + BEST_LABEL_X, y = py + (BEST_H - label.height) / 2, fade = f })
|
||||||
end
|
end
|
||||||
if value then
|
|
||||||
local str = tostring(value) .. (etype == "gauge" and " %" or "")
|
local str = tostring(value) .. (etype == "gauge" and " %" or "")
|
||||||
local t = best_text("dan_exam_best_value", str)
|
local t = best_text("dan_exam_best_value", str)
|
||||||
if t then
|
if t then
|
||||||
t:draw({ x = px + pw - BEST_VALUE_R - t.width, y = py + (BEST_H - t.height) / 2, fade = f })
|
t:draw({ x = px + pw - BEST_VALUE_R - t.width, y = py + (BEST_H - t.height) / 2, fade = f })
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
local parent_grid = DanSelect.draw_exam_grid
|
local parent_grid = DanSelect.draw_exam_grid
|
||||||
if parent_grid then
|
if parent_grid then
|
||||||
function DanSelect:draw_exam_grid(box, f)
|
function DanSelect:draw_exam_grid(box, f)
|
||||||
parent_grid(self, box, f)
|
parent_grid(self, box, f)
|
||||||
local pill = tex.get_texture("dan_select/yellow_box/exam_best_pill")
|
local pill = tex.get_texture("dan_select/yellow_box/exam_best_pill")
|
||||||
|
local gauge_pill = tex.get_texture("dan_select/yellow_box/exam_gauge_best_pill")
|
||||||
local gb = tex.get_skin_config("dan_exam_gauge_box") or { x = 436, y = 610 }
|
local gb = tex.get_skin_config("dan_exam_gauge_box") or { x = 436, y = 610 }
|
||||||
local sb = tex.get_skin_config("dan_exam_score_box") or { x = 769, y = 610, height = 132 }
|
local sb = tex.get_skin_config("dan_exam_score_box") or { x = 769, y = 610, height = 132 }
|
||||||
local sg = tex.get_skin_config("dan_exam_seg") or { width = 327 }
|
local sg = tex.get_skin_config("dan_exam_seg") or { width = 327 }
|
||||||
@@ -468,7 +470,7 @@ if parent_grid then
|
|||||||
local left = (etype == "gauge" and not gauge_used)
|
local left = (etype == "gauge" and not gauge_used)
|
||||||
if left then gauge_used = true end
|
if left then gauge_used = true end
|
||||||
if left then
|
if left then
|
||||||
draw_best_row(box, call(box, "exam_best", i), etype,
|
draw_best_row(gauge_pill, call(box, "exam_best", i), etype,
|
||||||
gb.x + BEST_GAUGE.x, gb.y + BEST_GAUGE.y, BEST_GAUGE.w, f)
|
gb.x + BEST_GAUGE.x, gb.y + BEST_GAUGE.y, BEST_GAUGE.w, f)
|
||||||
elseif right_row < 3 then
|
elseif right_row < 3 then
|
||||||
local by = sb.y + pitch * right_row
|
local by = sb.y + pitch * right_row
|
||||||
@@ -477,9 +479,8 @@ if parent_grid then
|
|||||||
for k = 0, segs - 1 do
|
for k = 0, segs - 1 do
|
||||||
local px = sb.x + BEST_RIGHT.x + seg_dx * k
|
local px = sb.x + BEST_RIGHT.x + seg_dx * k
|
||||||
local py = by + BEST_RIGHT.y
|
local py = by + BEST_RIGHT.y
|
||||||
if pill then tex.draw_texture(pill, { x = px, y = py, fade = f }) end
|
|
||||||
local v = gothrough and call(box, "exam_best", i) or call(box, "exam_song_best", i, k)
|
local v = gothrough and call(box, "exam_best", i) or call(box, "exam_song_best", i, k)
|
||||||
draw_best_row(box, v, etype, px, py, BEST_RIGHT.w, f)
|
draw_best_row(pill, v, etype, px, py, BEST_RIGHT.w, f)
|
||||||
end
|
end
|
||||||
right_row = right_row + 1
|
right_row = right_row + 1
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in new issue
Block a user