about summary refs log tree commit diff stats
path: root/Archipelago/load.gd
diff options
context:
space:
mode:
Diffstat (limited to 'Archipelago/load.gd')
-rw-r--r--Archipelago/load.gd23
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