Describe the bug
The layout for dialogic is visible when the state is loaded, even if there is no timeline to follow.
To Reproduce
Steps to reproduce the behavior:
set up a scenario where the timeline would stop into a place where there would be no other timeline to follow it up, like a map.
play through the timeline until you reached the scenario
save the state game (including dialogic state)
quit the game
restart the game
load the save
see that the latest frame of the timeline is visible.
Expected behavior
Instead of seeing the last state of the timeline, i should not be visible and the scenario it's covering should be instead
System (please complete the following information):
OS: Windows
Godot Version: 4.2
Dialogic Version: 2.0 - Alpha 13
Solutions
Workaround
avoid calling Dialogic.Save.load() until after i load a slot's info and check if it is in dialog.
Possible fixes
When a timeline has been wrapped up, it is set to null in the state dictionary. if a load occurs, the layout could be made invisible in the else branch.
The downside with this approach is that it will still attempt to set up the layout node as if it was visible, which will cause dialogic to push an error to the console for the portrait subsystem.
[Dialogic] Failed to join character to position 1. Could not find position container.
because the layout node is now invisible, it will display that it can't join the character portrait. As this doesn't seem to be a big issue, it could possibly be ignored, but it is not clean.
The problem
Describe the bug The layout for dialogic is visible when the state is loaded, even if there is no timeline to follow.
To Reproduce Steps to reproduce the behavior:
Expected behavior Instead of seeing the last state of the timeline, i should not be visible and the scenario it's covering should be instead
System (please complete the following information):
Solutions
Workaround
avoid calling
Dialogic.Save.load()
until after i load a slot's info and check if it is in dialog.Possible fixes When a timeline has been wrapped up, it is set to null in the state dictionary. if a load occurs, the layout could be made invisible in the else branch.
DialogicGameHandler.gd
The downside with this approach is that it will still attempt to set up the layout node as if it was visible, which will cause dialogic to push an error to the console for the portrait subsystem.
[Dialogic] Failed to join character to position 1. Could not find position container.
because the layout node is now invisible, it will display that it can't join the character portrait. As this doesn't seem to be a big issue, it could possibly be ignored, but it is not clean.