diff options
Diffstat (limited to 'Archipelago/client.gd')
-rw-r--r-- | Archipelago/client.gd | 16 |
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 | ||
991 | func wasGeneratedBeforeVersion(major, minor, build): | 997 | func 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 | |||
1001 | func wasGeneratedOnVersion(major, minor, build): | ||
1002 | return ( | ||
1003 | _gen_version["major"] == major | ||
1004 | and _gen_version["minor"] == minor | ||
1005 | and _gen_version["build"] == build | ||
1006 | ) | ||