TH185: character names on the market selection screen, from world.txt
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- javascript
- 領域
- game-dev, localization
調査の方向性
まず、world.txt の名前が draw_ctext の呼び出し箇所に到達する経路と、ANM VM のサーフェスがどのように重ねられるかを追跡します。character と tutorial のエントリについて real-name と whitespace の文字列を比較します。完了条件は、灰色の whitespace オーバーレイなしで、翻訳された名前が意図した色で描画されることです。
索引モデルが issue の本文から書いたものです。
説明
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

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:

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

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.
- 主要言語
- JavaScript
- スター
- 26
- フォーク
- 15
- 平均マージ
- 4時間 19分
- マージ済み PR(30日)
- 2
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
thpatch/thcrap-tsa のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
thpatch/thcrap-tsa#127 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
thpatch/thcrap-tsa#126 ·
-
Trial supportオープン
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
thpatch/thcrap-tsa#125 ·
-
minor
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
thpatch/thcrap-tsa#124 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
thpatch/thcrap-tsa#118 ·
thpatch/thcrap-tsa の issue をすべて見る
似ている issue
-
bug Frontend P2-medium UI UX
難易度 1/5 1時間未満 初心者へのやさしさ 76/100
Deepak3699/Ai_Mentor#427 ·
メンテナーはふだん 1 日以内に返信
-
needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
11ty/buildawesome#4407 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
keyxmakerx/Chronicle#1711 ·
メンテナーはふだん 1 日以内に返信
-
frontend
難易度 2/5 1〜3時間 初心者へのやさしさ 69/100
uoftblueprint/canada-basketball#79 ·
メンテナーはふだん 1 日以内に返信
-
New App Request
難易度 1/5 1時間未満 初心者へのやさしさ 76/100
ThatGuySam/doesitarm#1126 · コメント 1 件 ·