JujuAdams / Scribble

Efficient, internationalized, multi-effects text renderer for GameMaker
https://www.jujuadams.com/Scribble/
MIT License
321 stars 47 forks source link

character_delay_add() disregards the input delay time, resolves to an empty [delay] tag and uses SCRIBBLE_DEFAULT_DELAY_DURATION #488

Closed gl326 closed 3 weeks ago

gl326 commented 10 months ago

I haven't worked out where in the chain this data is lost, but I know that when I created a typist with character_add_delay(), the delay time I input was disregarded and SCRIBBLE_DEFAULT_DELAY_DURATION was always used instead. Breakpointing revealed that at some point my delay character was replaced with [delay] tags, but with no corresponding arguments to enforce the timing I had input for that character.

This is something I can easily work around, since for my situation I can just edit SCRIBBLE_DEFAULT_DELAY_DURATION. But if I wanted to have different delay characters with different delays assigned it seems that would be impossible right now.

JujuAdams commented 3 weeks ago

Delay commands are inserted into the typist command stack as the typist goes through the string. These delay commands are also generated by actual [delay] tags. SCRIBBLE_DEFAULT_DELAY_DURATION is used when zero arguments are passed to the delay command. However, delay commands inserted by per-character delay in a typist always specify a delay time so I don't see how this behaviour could occur.

In test I also cannot reproduce this issue (v8.7.1). If you can reproduce this bug, please attach a project.