diff --git a/autoloads/scoreboard.gd b/autoloads/scoreboard.gd index 17a043d..649c2a7 100644 --- a/autoloads/scoreboard.gd +++ b/autoloads/scoreboard.gd @@ -35,9 +35,10 @@ class ScoreEntry: func _ready() -> void: var file = File.new() - file.open("res://scoreboard_host.txt", File.READ) - server_host = file.get_line() - file.close() + var result = file.open("res://scoreboard_host.txt", File.READ) + if result == OK: + server_host = file.get_line() + file.close() http = HTTPRequest.new() http.download_chunk_size = 4096 diff --git a/menus/results.gd b/menus/results.gd index 9748925..8d03a0c 100644 --- a/menus/results.gd +++ b/menus/results.gd @@ -77,7 +77,7 @@ func _on_AnimationPlayer_animation_finished(anim_name): else: Game.change_map(LevelData.levels[Game.current_level].scene) return - if Game.final_score > Game.old_high_score and not Debug.is_cheating: + if Game.final_score > Game.old_high_score and not Debug.is_cheating and not ScoreBoard.server_host.empty(): animation_player.play("submit_score_popup") else: Fade.fade_out(Options.transition_speed_secs) diff --git a/menus/scoreboards_scholar.gd b/menus/scoreboards_scholar.gd index 10b3f05..9377f82 100644 --- a/menus/scoreboards_scholar.gd +++ b/menus/scoreboards_scholar.gd @@ -77,6 +77,12 @@ func _refresh_scores() -> void: func _load_scores(level: String) -> void: + loaded_scores[level] = {} + + if ScoreBoard.server_host.empty(): + yield(get_tree(), "idle_frame") + return + var result: Dictionary = yield(ScoreBoard.get_scores(level), "completed") if ScoreBoard.errored: #TODO: failure indication @@ -86,7 +92,6 @@ func _load_scores(level: String) -> void: _sorting_dict = result players.sort_custom(self, "_sort_scores") - loaded_scores[level] = {} for p in players: loaded_scores[level][p] = result[p]