randovania / open-dread-rando

Randomizer patcher for Metroid Dread
GNU General Public License v3.0
16 stars 15 forks source link

Improve Adam text patching #315

Open MayberryZoom opened 2 months ago

MayberryZoom commented 2 months ago

The text field in each hint is only a string. If this was changed to a list (like with DNA hints), then hint text could span multiple pages. I think in theory this could support any number of pages, as long as new text IDs were added as necessary. This feature would probably only be useful for plando purposes, as rando should never exceed one page outside of DNA hints.

MayberryZoom commented 1 month ago

There is an unfortunate limitation in the game itself in regards to this, which is that each Adam station has a maximum number of pages (the same as the length of the vanilla conversation). If this length is exceeded, the final working page will be displayed again each time the text is advanced.

I have no idea exactly what decides this or how to fix it, but my assumption at this point is that it has something to do with voice lines. I've tried simply adding new voice lines following the same naming convention, but clearly they're defined somewhere in the game explicitly (though it's not on the actor data as far as I can see).

Swapping out the "conversation ID" (the key in tCaptionList for the array that contains the list of pages) also doesn't help as far as I can tell. I'll have to revisit this though, since the voice lines didn't update, so I'm thinking that maybe I did this wrong. Swapping out sInteractionLiteralID also might do something, but I think this is unrelated as it shares a value across different Adams.

This limitation isn't a high urgency issue, as this is something that's an advanced use case anyways, but this should still be fixed eventually. Especially since there are Adams with conversations only a few pages long. As such, I'm renaming this issue to reflect that.

MayberryZoom commented 1 month ago

I want to leave this issue open, since there's still the limitation of the page limits, which will hopefully be fixed eventually.