From b393c9d6772c13177fd575cda8c76d96afc178d2 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sat, 29 Apr 2023 15:12:33 -0400 Subject: Don't download datapackages for big games Godot's websocket packet size limit can't be changed in 3.5, which is annoying. --- Archipelago/client.gd | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 2f5b631..e182b9c 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd @@ -35,6 +35,7 @@ const progressive_items = { {"item": "Hallway Room (4) - Exit", "display": "Fourth Door"}, ] } +const filtered_games = ["Ocarina of Time", "Factorio", "Lufia II Ancient Cave"] const kTHE_END = 0 const kTHE_MASTER = 1 @@ -178,9 +179,17 @@ func _on_data(): var needed_games = [] for game in message["datapackage_checksums"].keys(): + # Due to a limitation with Godot 3.x, downloading a datapackage + # that is too large will silently fail and prevent us from + # finishing the connection process. So we will hardcode the + # names of games that are likely to cause connection problems, + # and not download those datapackages. Which is not ideal. if ( - !_datapackages.has(game) - or _datapackages[game]["checksum"] != message["datapackage_checksums"][game] + ( + !_datapackages.has(game) + or _datapackages[game]["checksum"] != message["datapackage_checksums"][game] + ) + and not filtered_games.has(game) ): needed_games.append(game) -- cgit 1.4.1