_start_shift() now calls _refresh_freeze(), clearing the start-menu input lock and returning to captured mouse mode. The movement smoke asserts both and no longer captures the mouse itself. Headless 226/226 and smoke_movement pass in a clean worktree; only this game_manager hunk is staged, not the active realism edits.
83 lines
5.2 KiB
Markdown
83 lines
5.2 KiB
Markdown
# TODO
|
||
|
||
## Visual alignment with rendered mockups
|
||
|
||
### Storage restructure
|
||
|
||
- [x] Decide the canonical runtime image root (`assets/images/` for UI/scene art): recorded in
|
||
`MEMORY.md` and [ADR-0014](docs/adr/0014-runtime-image-root.md).
|
||
- [x] Move the reference mockups from `docs/screens/designs/` into the runtime root (keep `docs/screens/designs/` as a docs-only copy or replace it with the new path).
|
||
- [x] Document one convention for game vs reference vs development images across `assets/textures/`, `assets/images/`, `assets/models/generated/`, `docs/screenshots/`, and `docs/screens/designs/` (in `docs/architecture.md`, ADR-0014).
|
||
- [x] Re-run `godot --headless --path . --import` to regenerate `.import` sidecars after any move.
|
||
- [ ] Confirm `.gitignore` still excludes development-only outputs (concepts, Blender sources, raw AI fabrics) under the new layout.
|
||
|
||
### Documentation path updates
|
||
|
||
- [x] Update `README.md` paths (screen-designs section, confirmed-assets links, the `assets/images/scenes` resize example).
|
||
- [x] Update `docs/architecture.md`, `PLAN.md`, and ADR references: docs/screens/designs/ is now explicitly the reference-only snapshot; runtime art lives in assets/images/ (ADR-0014).
|
||
- [x] Update `tools/screen_designs.py` docstrings and mark the old paths in `DONE.md` as historical.
|
||
|
||
### Code path updates
|
||
|
||
- [x] Point `tools/screen_designs.py generate` at the new design output path and keep `compare`/`judge` reading the right locations.
|
||
- [x] Update GDScript `preload()` paths if game textures move (no runtime material/model textures moved; UI art added under assets/images/).
|
||
- [x] Update capture output directories if captures relocate (none did; QA captures stay in docs/screenshots/).
|
||
|
||
### Load proposed interfaces + scene art from disk
|
||
|
||
- [x] Add a central UI/scene art loader (e.g. `src/game/ui/art.gd`) that loads the mockup-derived images from the new runtime root, with a procedural fallback when a file is missing.
|
||
- [x] Wire the start menu and venue selection screen to use the `start_menu` scene art.
|
||
- [x] Wire the pause overlay to `pause_overlay` scene art (backdrop + opaque panel cover).
|
||
- [x] Wire the settings panel to `settings_panel` art.
|
||
- [x] Wire the shift-review screen to `shift_review` art (backdrop + opaque panel cover).
|
||
- [x] Wire the wand popup to `wand_screening` art.
|
||
- [x] Style the radial menu and finish the remaining HUD chrome against their reference images.
|
||
|
||
### Align in-game visuals
|
||
|
||
- [x] Make the venue selection screen match the `start_menu` mockup (layout, palette, background).
|
||
- [x] Make the HUD match the `targeting_npc` / `escalation_hud` mockups (focus ring, escalation meter, log, hints).
|
||
- [x] Align the pause, settings, and shift-review panels to their mockups.
|
||
- [x] Align the radio and wand panels to their mockups.
|
||
- [x] Align the body-camera timeline to its mockup.
|
||
- [ ] Align scene lighting, fog, and post-processing for `venue_overview` and `late_night_avenue`.
|
||
|
||
### Verify against the mockups
|
||
|
||
- [x] Regenerate the staged captures and run `screen_designs.py compare` (11 good, 0 bad; verified in a clean HEAD worktree).
|
||
- [x] Run `screen_designs.py judge` and clear every `diff` verdict (7 match, 4 review, 0 diff).
|
||
- [x] Add the capture + compare step as a repeatable smoke so drift is caught early (`tools/check_screenshots.sh`).
|
||
|
||
## Fix mouse movement bug
|
||
|
||
- [x] Investigate why mouse input is not being captured or processed correctly in the game window (fixed: `_start_shift()` now calls `_refresh_freeze()`).
|
||
|
||
## Improve in-game pop-ups
|
||
|
||
- [ ] Improve the visual appearance of in-game pop-ups (layout, button style, palette, icons, and text styling).
|
||
|
||
## Realism follow-ups (v0.6.1 candidates)
|
||
|
||
- [ ] Fixed ground exposure for the entrance view: it is still ~20 % brighter than the concept.
|
||
Either put the entrance in the building's shadow (sun yaw/elevation) or add a slight
|
||
per-view exposure so the shaded sidewalk reads mid-grey.
|
||
- [ ] Make the flashlight read in the dark: the `06-night-flashlight` concept shows a visible
|
||
beam, but a Compatibility spot light only brightens the near wall. A cheap fake cone (an
|
||
additive mesh or a light-shaft quad) would sell it, and the night mockup expects it.
|
||
- [ ] NPC skin/clothing still reads as low-poly next to the concepts (judge `characters` ≈ 0–1).
|
||
The Blender library has the budgets for one more detail pass (fingers, sleeves, faces).
|
||
- [ ] The `screen_designs.py judge` default model (`google/gemini-2.5-flash-lite`) currently
|
||
fails with a provider "API key not valid" 400; the tool retries once. Re-check before the
|
||
next release and either pin a working model or document `--model`.
|
||
- [ ] Add the two venue stages to the committed gallery (they are capture-only today) and give
|
||
the Joke Shop and studio their own geometry so their concept comparisons are geometric,
|
||
not just lighting.
|
||
|
||
## Future ideas (optional, not scheduled)
|
||
|
||
- [ ] Live 3D body-camera replay (the timeline is text-only today).
|
||
- [ ] Additional venues or seasonal events authored from the new `.tres` files.
|
||
- [ ] Real voice/dialogue audio (the crowd bed and radio crackle are procedural).
|
||
- [ ] Swap the primitive prop builder for an image-to-mesh model API behind the same
|
||
`assets/models/generated/<prop>.glb` contract.
|