snozbot / fungus

An easy to use Unity 3D library for creating illustrated Interactive Fiction games and more.
MIT License
1.63k stars 290 forks source link

"Hide if Visited" and "Show Count" not "remembered" after loading save #921

Open TheEmbracedOne opened 3 years ago

TheEmbracedOne commented 3 years ago

Describe the bug If a menu option is marked "Hide if Visited", it is not "remembered" by Fungus if the player quits the game and reloads.

To Reproduce

  1. Have a for "main menu" where you can click a Load button that just executes SaveMenu.Load(). The SaveMenu prefab exists here and will persist through to the next scene. SaveMenu has load on start OFF, auto save ON

  2. Have a "test scene" where selecting "new game" or "load" takes you. It should have the following flowchart setup: Start Block with a menu option that's marked "Hide if Visited", leading to "Block2". "Block2" should have a SavePoint, then a Say dialogue text, then a menu option that leads back to the Start block, not marked "Hide if Visited".

Test Scenarios

Test scenario 1: we click the menu option to go to "Block2". we see the dialogue text come up, then the "back" option. We quit the game without clicking it. Upon relaunching the game, we are put on Block2, we see the say text, then the "back" option. We click "back", and we find ourselves on the Start block to observe the option that would lead to Block2 gone.

Test scenario 2: we click the menu option to go to "Block2". we see the dialogue text come up, then the "back" option. We click the "back" option to get back to the Start block and observe that the option leading to "Block2" is gone. We quit the game now. Upon relaunching the game, we are put on the Start block, but we observe that the option taking us to "Block2" is available once again.

"Show Always"/"Show Count" Interactions

If "Show Always" is unticked, I can specify how many times a say dialogue appears via "show count". if set to appear only once, then in Test Scenario 2 if I set the say dialogue to have "show always" OFF and "show count" set to 1, the say dialogue will appear upon loading the save.

Expected behavior "Hide if Visited" to persist after reloading or relaunching the game. "Show Count" to persist after reloading or relaunching the game.

Screenshots image

image image image

Versions & Platform:

bytemech commented 3 years ago

Do you have a savedata block in your scene or just a SaveMenu block?

TheEmbracedOne commented 3 years ago

@bytemech SaveData block? I'm not sure what you mean by that, but I have added an empty GameObject with the SaveData script on it that I dragged the flowchart onto, but it doesnt seem to make a difference. The node the ShowOnce option leads to even has a SavePoint because I wanted to double check if perhaps the saving would trigger this behaviour, but no; once reloading the save from the main menu, the Show Once option is shown again, and so is the say text "Something something show once", despite set up to show only once. image image image

bytemech commented 3 years ago

Check 1:48 https://www.youtube.com/watch?reload=9&v=Bd4RDcCc0lE

TheEmbracedOne commented 3 years ago

@bytemech I've re-watched this video, and can confirm that my setup is correct. Any ideas why it still doesnt "remember" show count and hide if visited? image

TheEmbracedOne commented 2 years ago

@stevehalliwell I've got a lot of one-time choices in my game and I'd like to know what the intended behaviour here is, or if it's bugged. Could you confirm please? Is "hide if visited" (and "show count") supposed to persist through loading a save, loading another scene, etc or not?

It's OK if the fix is not coming anytime soon, I just would like to know, so I can work around it for the time being!