42 lines
1.2 KiB
GDScript
42 lines
1.2 KiB
GDScript
extends Node
|
|
|
|
var file
|
|
|
|
func load_file(file_number):
|
|
var new_file = ConfigFile.new()
|
|
new_file.load("user://file%d.pr" % file_number)
|
|
file = new_file
|
|
|
|
func get_level_data(save_id):
|
|
var shards = []
|
|
shards.resize(8)
|
|
for i in 8:
|
|
shards[i] = file.get_value(save_id, "shard_%d" % i, false)
|
|
return {
|
|
# any% score and time
|
|
score_any = file.get_value(save_id, "score_any", 0),
|
|
time_any = file.get_value(save_id, "time_any", INF),
|
|
# 100% score and time
|
|
score_100 = file.get_value(save_id, "score_100", 0),
|
|
time_100 = file.get_value(save_id, "time_100", INF),
|
|
shards = shards
|
|
}
|
|
|
|
func load_options():
|
|
Game.use_lives = file.get_value("options","uselives",Game.use_lives)
|
|
|
|
func set_shard_collected(save_id, index, collected = true):
|
|
file.set_value(save_id, "shard_%d" % index, collected)
|
|
|
|
func set_score(save_id, score, is_100 = false):
|
|
file.set_value(save_id, "score_100" if is_100 else "score_any", int(score))
|
|
|
|
func set_options():
|
|
file.set_value("options","uselives",Game.use_lives)
|
|
save_file(Game.current_file)
|
|
|
|
func set_time(save_id, time, is_100 = false):
|
|
file.set_value(save_id, "time_100" if is_100 else "time_any", float(time))
|
|
|
|
func save_file(file_number):
|
|
file.save("user://file%d.pr" % file_number)
|