Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TH185: character names on the market selection screen, from world.txt #57

Open
32th-System opened this issue Aug 17, 2022 · 0 comments
Open

Comments

@32th-System
Copy link
Member

The one remaining problem is that some character names will always appear greyed out. To understand why this happens, and how one might fix it, we need to understand how the whole system works to begin with:

When the game loads the character names from world.txt, it will add whitespace characters before and after the name. The game will also create text strings made up only of whitespace that are the same length as the character names (including the whitespace).

The game will call draw_ctext and, and use a format string of %s%s%s. The game calls draw_ctext 3 times with parameters as pictured in this graphic. Note that "Real character name" includes the whitespace, in all graphics
grafik
Every row in this crudely drawn graphic represents a set of parameters for a draw_ctext call, every column represents an indivdual parameter for the draw_ctext call in question. Every call to draw_ctext will draw to a different surface (ANM VM), with all the surfaces being overlayed ontop of eachother. The reason ZUN does this is because ZUN's text rendering code doesn't allow using different colors with only one draw_?text call

The exact same code is also reused for the 2 character names right below, except this time the calls look like this:
grafik

And for the tutorial stage, the same code is used once again, but with these parameters:
grafik

The problem mentioned at the start of this issue occurs because thcrap will replace both the real character names and the whitespace with a new string, causing a grey character name to overlay the yellow one. To solve this, thcrap would need to replace whitespace strings with strings that use the layout engine to create the exact right amount of whitespace for the translation string, or that entire code would have to be completely rewritten.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant