use an array on scoreboard, not a dict + sort_custom()

This commit is contained in:
Harmony Honey Monroe 2025-02-27 00:46:17 -05:00
parent ca939789e8
commit 9b6804ea20

View file

@ -284,32 +284,37 @@ func refresh_score(var map_name : String = current_map):
write_score()
if !last_refresh.has(map_name) or last_refresh[map_name] == 0:
#Leaderboard.refresh_score(map_name)
print(" - ", map_name, " REFRESH SCORE ")
last_refresh[map_name] = refresh_wait
func new_score(arg1 = null, arg2 = null, arg3 = null):
write_score()
func sort_scores(a, b):
if a[0] < b[0]:
return true
return false
func write_score():
var key = "note" if show_score == 2 else "time"
var dat = Shared.save_data
var dict = {}
var array = []
for i in dat.keys():
#print("dat ", i, " ", dat[i])
if dat[i].has_all(["username", "maps"]) and dat[i]["maps"].has(current_map) and dat[i]["maps"][current_map].has(key):
dict[int(dat[i]["maps"][current_map][key])] = dat[i]["username"]
var k := int(dat[i]["maps"][current_map][key])
var v := str(dat[i]["username"])
#print(k, " / ", v)
array.append([k, v])
var t = ""
var keys = dict.keys()
var row = 0
var my_row = -1
keys.sort()
for i in keys:
t += Shared.time_to_string(i) + " " + dict[i] + "\n"
array.sort_custom(self, "sort_scores")
for i in array:
t += Shared.time_to_string(i[0]) + " " + i[1] + "\n"
if dict[i] == Shared.username:
if i[1] == Shared.username:
my_row = row
row += 1