@@ -99,6 +99,12 @@ func update_background(scene := "", argument := "", fade_time := 0.0, transition
99
99
else :
100
100
new_viewport = null
101
101
102
+ # if there is still a transition going on, stop it now
103
+ for node in get_children ():
104
+ if node is DialogicBackgroundTransition :
105
+ node .queue_free ()
106
+
107
+
102
108
var trans_script : Script = load (DialogicResourceUtil .guess_special_resource ("BackgroundTransition" , transition_path , {"path" :default_transition }).path )
103
109
var trans_node := Node .new ()
104
110
trans_node .set_script (trans_script )
@@ -107,6 +113,7 @@ func update_background(scene := "", argument := "", fade_time := 0.0, transition
107
113
trans_node .time = fade_time
108
114
109
115
if old_viewport :
116
+ old_viewport .name = "OldBackground"
110
117
trans_node .prev_scene = old_viewport .get_meta ('node' , null )
111
118
trans_node .prev_texture = old_viewport .get_child (0 ).get_texture ()
112
119
old_viewport .get_meta ('node' )._custom_fade_out (fade_time )
@@ -115,6 +122,7 @@ func update_background(scene := "", argument := "", fade_time := 0.0, transition
115
122
old_viewport .get_child (0 ).render_target_update_mode = SubViewport .UPDATE_ALWAYS
116
123
trans_node .transition_finished .connect (old_viewport .queue_free )
117
124
if new_viewport :
125
+ new_viewport .name = "NewBackground"
118
126
trans_node .next_scene = new_viewport .get_meta ('node' , null )
119
127
trans_node .next_texture = new_viewport .get_child (0 ).get_texture ()
120
128
new_viewport .get_meta ('node' )._update_background (argument , fade_time )
0 commit comments