From 55e420736009afd82afa2c830921e10c67b42445 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sat, 17 May 2025 13:15:19 -0400 Subject: Stopgap fix for Bearer paintings in pilgrimage AP 0.6.1 and earlier logically expects you to use The Bearer's paintings during pilgrimage even if paintings in pilgrimage are disabled. This changes those paintings so that they do work in this case, but only for multiworlds generated in 0.6.1 and earlier. --- Archipelago/painting.gd | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'Archipelago/painting.gd') diff --git a/Archipelago/painting.gd b/Archipelago/painting.gd index adc8337..dc791ce 100644 --- a/Archipelago/painting.gd +++ b/Archipelago/painting.gd @@ -1,10 +1,26 @@ extends "res://scripts/painting.gd" -func _looked_at(var body, var painting): - ._looked_at(body, painting) - - if body.is_in_group("player") && (painting.get_name() == self.get_name()): - var apclient = global.get_node("Archipelago") - if !apclient._pilgrimage_allows_paintings: - global.sunwarp = 1 - body.get_node("pivot/camera/sunwarp_background").visible = false +var breaks_pilgrimage = false + + +func _ready(): + var apclient = global.get_node("Archipelago") + if !apclient._pilgrimage_allows_paintings: + if apclient.wasGeneratedBeforeVersion(0, 6, 2): + var extradata = apclient.get_node("Extradata") + if not extradata.pilgrimage_061_painting_fixes.has(get_name()): + breaks_pilgrimage = true + else: + breaks_pilgrimage = true + + +func _looked_at(body, painting): + ._looked_at(body, painting) + + if ( + breaks_pilgrimage + and body.is_in_group("player") + and (painting.get_name() == self.get_name()) + ): + global.sunwarp = 1 + body.get_node("pivot/camera/sunwarp_background").visible = false -- cgit 1.4.1