EDCD / EDDI

Companion application for Elite Dangerous
Other
437 stars 81 forks source link

Star report star class not spoken correctly #2625

Closed Darkcyde13 closed 1 month ago

Darkcyde13 commented 1 month ago

What's Wrong (please be as specific as possible)

Expected

Star classes in Star report to be spoken correctly.

Observed

For star classes that use Spacialise(), the spacialise word is being spoken.

Steps to reproduce

  1. Scan a star for any class that is listed in the Star report using Spacialise(). Or just test the line in a new script.
  2. Observe that the Spacialise code is spoken.

Configuration

My Investigation

Investigation Notes

In my travels, I came across a rare M class star. When EDDI read out the Star report it said: This orange giant is Very rare and interesting, relative to similar class {Spacialise('M')}-class orange giants, with an unusually young age of well over 1 billion years and a high rate of rotation at just over 130 days. As you can see, it emits a yellow-orange light.

This is from my modified version, so I went to the EDDI default to check there. The only difference in this case, is that I've added "-class" to the end of the line, making {set class to "{Spacialise('M')}-class"}. The EDDI default doesn't have the -class part, but otherwise is identical.

Copying that line into a new blank script, and then adding {class} after so that it is spoken, results in this: {Spacialise('M')}-class

It looks like a problem with the quote marks like in #2614 but even adding \ before the ' doesn't make any difference. I'm guessing this will be the same for all star classes that use Spacialise().

I've also tried the following:

{set another to '{OneOf("Another one", "One more", "Thats another one")}'}
{another}

This is the same, and results in this being spoken: {OneOf("Another one", "One more", "Thats another one")}

As a workaround (for now) I can cat() the two portions of my code like this: {set class to cat(Spacialise("M"), "-class")}

But this is only a bandaid for the underlying problem, because the original line should work OK as it is.

EDDI Logs

No errors in the log, just lines like this when I click the test button: 2024-06-22T23:00:40 [Info] SpeechResponder:Start Initialized Speech Responder

Player journals

N/A

Darkcyde13 commented 1 month ago

Just realised there is a new update to beta 3. I've just installed that, and the problem remains.

Tkael commented 1 month ago

I'm not sure if EDDI ever described the way you're describing or if we simply made some bad assumptions when we wrote the script. We certainly didn't test every possible permutation. :-)

Once a value has been set, custom functions cannot touch it anymore. This fails:

{set another to '{OneOf("Another one", "One more", "Thats another one")}'}
{another}

This succeeds:

{set another to OneOf("Another one", "One more", "Thats another one")}
{another}

I will update the Star report script accordingly.

Darkcyde13 commented 1 month ago

Ah, sorry, my second example was more to test if it happened with other functions too, or if it was Spacialise() specifically that caused it. :-)

I was also wondering if this has come about as a result of the changes to the escape sequences and quote marks, although I've not gone back to 4.0.3 to test it.

Did you see my additional comment on #2614? It's kind of similar to this in that, as far as I can tell, it should work, but doesn't and is regarding quote marks.