diff options
Diffstat (limited to 'Archipelago/load.gd')
-rw-r--r-- | Archipelago/load.gd | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Archipelago/load.gd b/Archipelago/load.gd index be209c3..8559b10 100644 --- a/Archipelago/load.gd +++ b/Archipelago/load.gd | |||
@@ -554,6 +554,20 @@ func _load(): | |||
554 | proxynode.exact_proxy = true | 554 | proxynode.exact_proxy = true |
555 | proxynode.request_ready() | 555 | proxynode.request_ready() |
556 | oldparent.add_child(proxynode) | 556 | oldparent.add_child(proxynode) |
557 | |||
558 | # If the world was generated on 0.5.1, apply the hotfix for the number hunt doors. | ||
559 | if apclient._panel_door_shuffle && apclient.wasGeneratedOnVersion(0, 5, 1): | ||
560 | var number_hunt_parent = get_node("Doors/Count Up Room Area Doors") | ||
561 | var extradata_051_fix = apclient.get_node("Extradata").panels_mode_051_door_fixes | ||
562 | for template_door_path in extradata_051_fix: | ||
563 | var template_door = number_hunt_parent.get_node(template_door_path) | ||
564 | var impacted_doors = extradata_051_fix[template_door_path] | ||
565 | for impacted_door_path in impacted_doors: | ||
566 | var impacted_door = number_hunt_parent.get_node(impacted_door_path) | ||
567 | var copied_door = impacted_door.duplicate() | ||
568 | copied_door.panels = template_door.panels | ||
569 | number_hunt_parent.add_child(copied_door) | ||
570 | impacted_door.queue_free() | ||
557 | 571 | ||
558 | # Attach a script to every panel so that we can do things like conditionally | 572 | # Attach a script to every panel so that we can do things like conditionally |
559 | # disable them. | 573 | # disable them. |
@@ -567,6 +581,8 @@ func _load(): | |||
567 | var script_instance = panel_script.new() | 581 | var script_instance = panel_script.new() |
568 | script_instance.name = "AP_Panel" | 582 | script_instance.name = "AP_Panel" |
569 | script_instance.data = panel | 583 | script_instance.data = panel |
584 | if apclient._panel_door_shuffle and gamedata.mentioned_panels.has(panel["id"]): | ||
585 | script_instance.locked = true | ||
570 | panel_node.add_child(script_instance) | 586 | panel_node.add_child(script_instance) |
571 | apclient.connect("evaluate_solvability", script_instance, "evaluate_solvability") | 587 | apclient.connect("evaluate_solvability", script_instance, "evaluate_solvability") |
572 | 588 | ||
@@ -666,9 +682,16 @@ func _load(): | |||
666 | effects.set_name("AP_Effects") | 682 | effects.set_name("AP_Effects") |
667 | self.add_child(effects) | 683 | self.add_child(effects) |
668 | 684 | ||
685 | # Create the textclient node. | ||
686 | var textclient_script = apclient.SCRIPT_textclient | ||
687 | var textclient = textclient_script.new() | ||
688 | textclient.set_name("AP_TextClient") | ||
689 | self.add_child(textclient) | ||
690 | |||
669 | # Create the multiplayer node, if needed. | 691 | # Create the multiplayer node, if needed. |
670 | if apclient.enable_multiplayer: | 692 | if apclient.enable_multiplayer: |
671 | var multiplayer_node = apclient.SCRIPT_multiplayer.new() | 693 | var multiplayer_node = apclient.SCRIPT_multiplayer.new() |
694 | multiplayer_node.name = "Multiplayer" | ||
672 | multiplayer_node.ghost_mode = true | 695 | multiplayer_node.ghost_mode = true |
673 | add_child(multiplayer_node) | 696 | add_child(multiplayer_node) |
674 | 697 | ||