viniciusgerevini / godot-clyde-dialogue

Clyde Dialogue Language Importer and interpreter for Godot.
MIT License
89 stars 11 forks source link

`not content` broken #20

Closed ConnyOnny closed 6 months ago

ConnyOnny commented 1 year ago

Hi, I'm using Godot 3.5.1 on Windows with godot clyde 3.2.0 from the asset lib. In the example script it says the way to check for a finished dialogue is this: if not content: However the returned content at the end of the dialog is not null but it is some value that in the print function stringifies to "Null". So currently I use this instead: if not content is Dictionary: As I see it, either the example is outdated and should use a different check, or the library is wrong to return something non-null when the dialogue is already finished.

viniciusgerevini commented 1 year ago

Hello @ConnyOnny . Thanks for reporting this. I've been using Godot 3.5.1 and I tested the plugin in a few other computers and I couldn't reproduce this issue. Does it happen for every dialogue you try to run? I'm trying to check if there is any edge case that might trigger this.

There are a few automated tests that rely on the last line being null (i.e. https://github.com/viniciusgerevini/godot-clyde-dialogue/blob/master/test/test_interpreter.gd#L356), so I'm confident that's the value being returned. However, I don't use windows very often, so I want to discard any peculiarity/bug in Godot.

Lunaretic commented 1 year ago

Bit of a necropost, but I was able to repro this initially when using the sample dialogue provided here https://viniciusgerevini.github.io/clyde/

But when I stripped it down to just the first couple normal text lines it worked properly. I would assume it's something to with parsing of the options lines or some other bit of oddity there. Hope that helps.

viniciusgerevini commented 6 months ago

Thank you all. I wasn't able to reproduce it locally, however the newest version does not return null on dialogue end anymore. Instead it returns a { "type": "end" } object. This should avoid any null handling weirdness.