summaryrefslogtreecommitdiffstats
path: root/transition_player.gd
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2026-02-05 21:54:16 +0200
committerJan Tuomi <jan@jantuomi.fi>2026-02-05 21:54:16 +0200
commitf53d1d99707c5063a35c0c68890e0947077108ad (patch)
tree4fc47e986b520c9c0c746a20edc5015de24e207b /transition_player.gd
parent7241211bf3d960c0921c273cca5d10ad92734a61 (diff)
Work on intro cinematic
Diffstat (limited to 'transition_player.gd')
-rw-r--r--transition_player.gd15
1 files changed, 12 insertions, 3 deletions
diff --git a/transition_player.gd b/transition_player.gd
index 9d875d7..ba719eb 100644
--- a/transition_player.gd
+++ b/transition_player.gd
@@ -3,8 +3,12 @@ extends AnimationPlayer
var _transition_room: Node
var _transition_door_name: Variant # String or null
+var _override_player_fn: Variant # Callable or null
-func room_transition(from_door: Door, to_room_path: String, door_name: Variant):
+func room_transition(from_door: Door,
+ to_room_path: String,
+ door_name: Variant,
+ override_player_fn: Variant = null):
print_debug("Transitioning to room path: %s" % to_room_path)
var top: Top = get_tree().root.get_node("Top")
@@ -23,6 +27,7 @@ func room_transition(from_door: Door, to_room_path: String, door_name: Variant):
var room = ResourceLoader.load(to_room_path)
_transition_room = room.instantiate()
_transition_door_name = door_name
+ _override_player_fn = override_player_fn
if to_room_path != Top.ROOM_MAIN_MENU:
top.game_set(Top.SAVE_ACTIVE_ROOM_PATH, to_room_path)
@@ -47,9 +52,9 @@ func _on_room_changed():
var door: Door = room.find_child(_transition_door_name)
player.position = door.position
player.request_state_forced(door.exit_towards)
+ top.game_save()
play("room_trans_end")
- top.game_save()
func _transition_end():
var top: Top = get_tree().root.get_node("Top")
@@ -58,5 +63,9 @@ func _transition_end():
var room = top.get_node("ActiveRoom")
var player: Player = room.find_child("Player")
- if player:
+ if _override_player_fn:
+ _override_player_fn.call(player)
+ elif player:
player.request_state_normal()
+
+ _override_player_fn = null