about summary refs log tree commit diff stats
path: root/Archipelago/client.gd
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2024-12-08 16:14:53 -0500
committerStar Rauchenberger <fefferburbia@gmail.com>2024-12-08 16:14:53 -0500
commit84f4fc2db8b7ada36faa5341cb7bee17750f1a07 (patch)
treee2f05a7dd4e7fe5aa54ea304f8b8de9f5664ba3c /Archipelago/client.gd
parent4b53c8858448e4fc835c907813632f6eeddd543d (diff)
downloadlingo-archipelago-84f4fc2db8b7ada36faa5341cb7bee17750f1a07.tar.gz
lingo-archipelago-84f4fc2db8b7ada36faa5341cb7bee17750f1a07.tar.bz2
lingo-archipelago-84f4fc2db8b7ada36faa5341cb7bee17750f1a07.zip
Add workaround for 0.5.1 number hunt logic bug
Diffstat (limited to 'Archipelago/client.gd')
-rw-r--r--Archipelago/client.gd16
1 files changed, 15 insertions, 1 deletions
diff --git a/Archipelago/client.gd b/Archipelago/client.gd index 8f9d3e0..99be37a 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd
@@ -779,8 +779,14 @@ func processItem(item, index, from, flags):
779 doorsNode.get_node(door_id).openDoor() 779 doorsNode.get_node(door_id).openDoor()
780 780
781 if gamedata.panel_ids_by_item_id.has(int(item)): 781 if gamedata.panel_ids_by_item_id.has(int(item)):
782 var panel_ids = gamedata.panel_ids_by_item_id[int(item)]
783 if wasGeneratedOnVersion(0, 5, 1):
784 var extradata = get_node("Extradata")
785 if extradata.panels_mode_051_panel_fixes.has(int(item)):
786 panel_ids = extradata.panels_mode_051_panel_fixes[int(item)]
787
782 var panelsNode = get_tree().get_root().get_node("Spatial/Panels") 788 var panelsNode = get_tree().get_root().get_node("Spatial/Panels")
783 for panel_id in gamedata.panel_ids_by_item_id[int(item)]: 789 for panel_id in panel_ids:
784 panelsNode.get_node(panel_id).get_node("AP_Panel").locked = false 790 panelsNode.get_node(panel_id).get_node("AP_Panel").locked = false
785 emit_signal("evaluate_solvability") 791 emit_signal("evaluate_solvability")
786 792
@@ -990,3 +996,11 @@ func compareVersion(lhs, rhs):
990 996
991func wasGeneratedBeforeVersion(major, minor, build): 997func wasGeneratedBeforeVersion(major, minor, build):
992 return compareVersion(_gen_version, {"major": major, "minor": minor, "build": build}) 998 return compareVersion(_gen_version, {"major": major, "minor": minor, "build": build})
999
1000
1001func wasGeneratedOnVersion(major, minor, build):
1002 return (
1003 _gen_version["major"] == major
1004 and _gen_version["minor"] == minor
1005 and _gen_version["build"] == build
1006 )