Fix facility discovery in exported builds and verify first construction

This commit is contained in:
Takeshi
2026-09-09 23:59:24 +09:00
parent fb4ad23190
commit 7121092794
5 changed files with 142 additions and 1 deletions
+26
View File
@@ -0,0 +1,26 @@
# Windows配布版で建築候補が空になる問題
対象: 最初のWindows配布 `fb4ad23`。受付が建築候補に現れず開業できないという報告を、配布済みPCKで再現した。
## 原因と修正
GodotのRelease出力ではFacilityの `.tres` が `.res` に変換され、元のパスは `.remap` を通して読み込まれる。DefinitionRegistryが `FileAccess.file_exists` で元の物理ファイルを調べていたため、全18施設を `resource_not_found` として除外していた。リソースの存在判定を `ResourceLoader.exists` に変更し、既存の型・内容・IDの検証は維持した。
制作フォルダーからPCKを実行すると、物理ファイルがローカルにあるため不具合が隠れる。前回の単なる起動smokeでも候補の欠落は検出できなかった。
## 検証
- 制作フォルダー外の一時ディレクトリで、配布済みPCKだけを起動。`FileAccess=false / ResourceLoader=true` を確認し、18施設の欠落・パレット空を再現。
- 修正版PCKを同じ隔離条件で起動し、13項目成功。制作ファイルへのフォールバックなし、全18施設、受付ボタンの表示・選択、初日ガイドからの選択、マップ配置、500Gの支払い、120分後の完成、客室建設への案内を確認。
- macOS版Godotによる配布PCKの実描画で受付完成と建築候補を確認。Windows実機での再検証は未実施。
- DefinitionRegistryの既存266項目が成功し、存在しないデータの拒否も維持。
`make export-windows` は以後、書き出し後に隔離した実建設チェックを実行する。既存PCKの検証は次のコマンドで行える。
```
make test-exported-opening WINDOWS_PCK=/absolute/path/TheTree.pck
```
`tools/verify_exported_opening.py` が一時ディレクトリから `tests/export/test_exported_opening.gd` を実行する。試験では保存を無効にし、実際の建設UIとCommandを使う。制作ファイルが見つかった場合も失敗させる。
証跡: `artifacts/windows-opening-before-isolated.log`、`windows-opening-fixed-visual.log`、`windows-registry-fix.log`、`windows-reception-fixed.png`。修正版配布は `build/windows/TheTree-Windows-reception-fix.zip`。EXEとPCKを含めて全体を展開し、新しいフォルダーから起動する。