From 9f5c9f8019c56d6904dfff1d18eaed247db5eba6 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Thu, 26 Sep 2024 17:40:17 +0200 Subject: prevent double fade by removing the fade queue; fix #145 --- client/menu/scene_transition.gd | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'client/menu') diff --git a/client/menu/scene_transition.gd b/client/menu/scene_transition.gd index b30897aa..a10fccfd 100644 --- a/client/menu/scene_transition.gd +++ b/client/menu/scene_transition.gd @@ -19,36 +19,35 @@ extends Control @onready var anim: AnimationPlayer = $AnimationPlayer -var black = true +var s_current = false +var s_target = false var fading = false -var queue = [] - func _ready(): $ColorRect.visible = true func next(): - if fading: return - if queue.is_empty(): return + while fading: await anim.animation_finished + if s_target == s_current: return fading = true - if queue.pop_front(): + if s_target: anim.play_backwards("fade") await anim.animation_finished self.mouse_filter = Control.MOUSE_FILTER_IGNORE - black = false + s_current = true else: self.mouse_filter = Control.MOUSE_FILTER_STOP anim.play("fade") await anim.animation_finished - black = false + s_current = false fading = false await next() func fade_in(): - queue.push_back(true) + s_target = true await next() func fade_out(): - queue.push_back(false) + s_target = false await next() func _exit_tree(): -- cgit v1.2.3-70-g09d2