Pre-launch hardening: save/load crash fixes, EA disclaimer, main-menu polish
Code changes driven by the save/load audit done ahead of the May 19 EA ship:
Code changes driven by the save/load audit done ahead of the May 19 EA ship:
- SaveSystem: null-coalesce every inbound list (schema drift guard), replace Enum.Parse with TryParse for Difficulty/GearSlot/NodeType (defaults to sane values on rename), regen dropped combat enemies from the act pool if every saved enemy name fails to resolve, null-check MetaSaveData before dereferencing scalar fields.
- SettingsMenu: apply video settings via RuntimeInitializeOnLoadMethod so fullscreen/vsync/frame-cap persist on boot (previously required opening the settings menu once before they applied — Day-1 complaint source).
- CombatManager: gate the per-hit [DISTANCE] Debug.Log behind UNITY_EDITOR so it stops spamming shipped builds.
- MainMenuUI: read Application.version for the bottom-left version string, add a quiet REPORT A BUG link bottom-right, add a first- launch EA disclaimer popup (shown once, gated by PlayerPrefs).
- MenuMessagePopup: new reusable modal used by the EA disclaimer AND the new “save incompatible — cleared it, start a new run” fallback on Continue Run failure. Replaces the old silent Debug.LogError.
- KNOWN_ISSUES.md: triaged audit of TODO / FIXME / HACK across the codebase. 1 fix-before-launch (already fixed in this commit), 1 post-launch, 9 ship-as-is.
- QA_BUGS.md: template for tracking playtest bugs through launch.
- Packages + Resources/*.meta: IL2CPP install from yesterday + Unity- regenerated meta files for event/gear art.
Co-Authored-By: Claude Opus 4.7 (1M context) [email protected]
Commit 1278d89 by astafford8488.