diff --git a/docs/design/wireframes/README.md b/docs/design/wireframes/README.md index 0d9e1e44f..0eae4aa9e 100644 --- a/docs/design/wireframes/README.md +++ b/docs/design/wireframes/README.md @@ -60,7 +60,7 @@ Main menu, pause, save/load, options. |-----------|---------|-------------------| | [v01-main-menu](menus/v01-main-menu.png) | v0.1 | [D-043](../../../decisions/perception.md#d-043-art-direction--visual-style-functional-warmth) (functional warmth style), [D-027](../../../decisions/scope.md#d-027-vertical-slice--smuggler--detective-two-character-proof) (two-character proof — character select) | | [v01-pause-menu](menus/v01-pause-menu.png) | v0.1 | [D-043](../../../decisions/perception.md#d-043-art-direction--visual-style-functional-warmth) (visual style) | -| [v01-save-load](menus/v01-save-load.png) | v0.1 | [D-027](../../../decisions/scope.md#d-027-vertical-slice--smuggler--detective-two-character-proof) (vertical slice), [D-043](../../../decisions/perception.md#d-043-art-direction--visual-style-functional-warmth) (visual style) | +| [v01-save-load](menus/v01-save-load.png) | v0.1 | [D-085](../../../decisions/architecture.md#d-085-per-game-save-directory-structure) (per-game save dirs), [D-043](../../../decisions/perception.md#d-043-art-direction--visual-style-functional-warmth) (visual style), [D-027](../../../decisions/scope.md#d-027-vertical-slice--smuggler--detective-two-character-proof) (vertical slice) | | [v10-main-menu](menus/v10-main-menu.png) | v1.0 | [D-043](../../../decisions/perception.md#d-043-art-direction--visual-style-functional-warmth) (visual style), [D-036](../../../decisions/content.md#d-036-sova-transit-district--krenn-system-as-v01-setting) (setting — Sova Transit District), [D-013](../../../decisions/scope.md#d-013-diegetic-insertpoi-navigation-system) (diegetic insert — in-fiction menu) | | [v10-options-full](menus/v10-options-full.png) | v1.0 | [D-043](../../../decisions/perception.md#d-043-art-direction--visual-style-functional-warmth) (visual style), [D-068](../../../decisions/architecture.md#d-068-5-bus-audio-architecture) (5-bus audio — per-bus volume controls), [D-069](../../../decisions/perception.md#d-069-audio-dip-profiles-for-dialogue-and-confrontation) (audio dip profiles) | diff --git a/docs/design/wireframes/menus/v01-save-load.json b/docs/design/wireframes/menus/v01-save-load.json index 60a39096c..65fb789b9 100644 --- a/docs/design/wireframes/menus/v01-save-load.json +++ b/docs/design/wireframes/menus/v01-save-load.json @@ -37,156 +37,220 @@ "tab-save": { "type": "Rectangle", "left": 140, "top": 116, "width": 120, "height": 32, - "fillColor": "#1a2030", - "strokeColor": "#c8d0e0", + "fillColor": "#0d1018", + "strokeColor": "#333340", "corners": [2, 2, 0, 0] }, "tab-save-text": { "type": "Text", "left": 156, "top": 125, "text": "SAVE", - "fontColor": "#c8d0e0", + "fontColor": "#556677", "fontSize": 13 }, "tab-load": { "type": "Rectangle", "left": 264, "top": 116, "width": 120, "height": 32, - "fillColor": "#0d1018", - "strokeColor": "#333340", + "fillColor": "#1a2030", + "strokeColor": "#c8d0e0", "corners": [2, 2, 0, 0] }, "tab-load-text": { "type": "Text", "left": 280, "top": 125, "text": "LOAD", - "fontColor": "#556677", + "fontColor": "#c8d0e0", "fontSize": 13 }, - "save-slot-1-active": { + + "game-1-header": { "type": "Rectangle", - "left": 140, "top": 156, "width": 860, "height": 72, + "left": 140, "top": 156, "width": 860, "height": 32, + "fillColor": "#151a24", + "strokeColor": "#333340", + "corners": [2, 2, 0, 0] + }, + "game-1-title": { + "type": "Text", + "left": 152, "top": 165, + "text": "\u25bc DETECTIVE \u2014 Day 3 // Sova Transit // last played: today", + "fontColor": "#c8d0e0", + "fontSize": 12 + }, + "game-1-count": { + "type": "Text", + "left": 920, "top": 165, + "text": "3 saves", + "fontColor": "#556677", + "fontSize": 11 + }, + + "qs-row": { + "type": "Rectangle", + "left": 158, "top": 192, "width": 842, "height": 62, "fillColor": "#1a2030", "strokeColor": "#c8d8f0", "corners": [2, 2, 2, 2] }, - "save-slot-1-accent": { + "qs-accent": { "type": "Rectangle", - "left": 140, "top": 156, "width": 3, "height": 72, + "left": 158, "top": 192, "width": 3, "height": 62, "fillColor": "#c8d8f0", "strokeColor": "#c8d8f0" }, - "slot-1-date": { + "qs-label": { "type": "Text", - "left": 152, "top": 162, - "text": "AUTOSAVE // Day 1, 07:42", + "left": 170, "top": 200, + "text": "QUICKSAVE // Day 3, 14:22", "fontColor": "#c8d0e0", "fontSize": 13 }, + "qs-location": { + "type": "Text", + "left": 170, "top": 218, + "text": "The Terminal \u2014 afternoon shift", + "fontColor": "#8899aa", + "fontSize": 12 + }, + "qs-timestamp": { + "type": "Text", + "left": 170, "top": 234, + "text": "saved: 2026-02-25 16:31", + "fontColor": "#556677", + "fontSize": 11 + }, + "qs-actions": { + "type": "Text", + "left": 840, "top": 212, + "text": "[Enter] Load\n[F6] Quickload", + "fontColor": "#c8d8f0", + "fontSize": 11 + }, + + "auto-row": { + "type": "Rectangle", + "left": 158, "top": 260, "width": 842, "height": 62, + "fillColor": "#0e1118", + "strokeColor": "#333340", + "corners": [2, 2, 2, 2] + }, + "auto-label": { + "type": "Text", + "left": 170, "top": 268, + "text": "AUTOSAVE // Day 3, 13:45", + "fontColor": "#8899aa", + "fontSize": 13 + }, + "auto-location": { + "type": "Text", + "left": 170, "top": 286, + "text": "Corridor B-7", + "fontColor": "#556677", + "fontSize": 12 + }, + "auto-timestamp": { + "type": "Text", + "left": 170, "top": 302, + "text": "saved: 2026-02-25 16:15", + "fontColor": "#3a4455", + "fontSize": 11 + }, + + "slot-1-row": { + "type": "Rectangle", + "left": 158, "top": 328, "width": 842, "height": 62, + "fillColor": "#0e1118", + "strokeColor": "#333340", + "corners": [2, 2, 2, 2] + }, + "slot-1-label": { + "type": "Text", + "left": 170, "top": 336, + "text": "SLOT 1 // Day 2, 22:10", + "fontColor": "#8899aa", + "fontSize": 13 + }, "slot-1-location": { "type": "Text", - "left": 152, "top": 180, - "text": "The Terminal — morning shift // Detective", - "fontColor": "#8899aa", + "left": 170, "top": 354, + "text": "Hab quarters \u2014 evening", + "fontColor": "#556677", "fontSize": 12 }, "slot-1-timestamp": { "type": "Text", - "left": 152, "top": 198, - "text": "saved: 2026-02-23 14:31", - "fontColor": "#556677", + "left": 170, "top": 370, + "text": "saved: 2026-02-25 14:48", + "fontColor": "#3a4455", "fontSize": 11 }, - "slot-1-actions": { - "type": "Text", - "left": 860, "top": 175, - "text": "[Enter] Overwrite / Load", - "fontColor": "#c8d8f0", - "fontSize": 12 - }, - "save-slot-2": { + + "game-2-header": { "type": "Rectangle", - "left": 140, "top": 236, "width": 860, "height": 72, - "fillColor": "#0e1118", + "left": 140, "top": 404, "width": 860, "height": 32, + "fillColor": "#111520", "strokeColor": "#333340", "corners": [2, 2, 2, 2] }, - "slot-2-date": { + "game-2-title": { "type": "Text", - "left": 152, "top": 250, - "text": "SLOT 2 // Day 1, 06:15", + "left": 152, "top": 413, + "text": "\u25b6 SMUGGLER \u2014 Day 1 // The Terminal // last played: yesterday", "fontColor": "#8899aa", - "fontSize": 13 - }, - "slot-2-location": { - "type": "Text", - "left": 152, "top": 268, - "text": "Arrival — entering Sova Transit // Detective", - "fontColor": "#556677", "fontSize": 12 }, - "slot-2-timestamp": { + "game-2-count": { "type": "Text", - "left": 152, "top": 286, - "text": "saved: 2026-02-23 13:10", + "left": 920, "top": 413, + "text": "2 saves", "fontColor": "#3a4455", "fontSize": 11 }, - "save-slot-3": { + + "game-3-header": { "type": "Rectangle", - "left": 140, "top": 316, "width": 860, "height": 72, - "fillColor": "#0e1118", + "left": 140, "top": 444, "width": 860, "height": 32, + "fillColor": "#111520", "strokeColor": "#333340", "corners": [2, 2, 2, 2] }, - "slot-3-date": { + "game-3-title": { "type": "Text", - "left": 152, "top": 330, - "text": "SLOT 3 // Day 1, 07:30", + "left": 152, "top": 453, + "text": "\u25b6 DETECTIVE \u2014 Day 7 // Sova Transit // last played: Feb 20", "fontColor": "#8899aa", - "fontSize": 13 - }, - "slot-3-location": { - "type": "Text", - "left": 152, "top": 348, - "text": "Corridor B-7 — Kael spotted // Smuggler", - "fontColor": "#556677", "fontSize": 12 }, - "slot-3-timestamp": { + "game-3-count": { "type": "Text", - "left": 152, "top": 366, - "text": "saved: 2026-02-23 12:48", + "left": 920, "top": 453, + "text": "5 saves", "fontColor": "#3a4455", "fontSize": 11 }, - "empty-slots-label": { + + "footer-note": { "type": "Text", - "left": 140, "top": 400, - "text": "SLOTS 4-8 — empty", - "fontColor": "#2a3040", - "fontSize": 12 - }, - "save-note": { - "type": "Text", - "left": 140, "top": 660, - "text": "Autosave on: zone transitions, conversation ends, significant events", + "left": 140, "top": 660, "width": 860, + "text": "Autosave: zone transitions, conversation ends, significant events // F5 quicksave // F6 quickload", "fontColor": "#3a4455", - "fontSize": 11 + "fontSize": 11, + "wordWrap": true }, "annotation-title": { "type": "Text", "left": 16, "top": 720, - "text": "v0.1 SAVE / LOAD SCREEN", + "text": "v0.1 SAVE / LOAD \u2014 LOAD TAB (D-085)", "fontColor": "#556677", "fontSize": 11 }, "annotation-notes": { "type": "Text", "left": 16, "top": 734, "width": 1100, - "text": "Tab UI: Save / Load. Slots show: timestamp, in-game time+location, character. Autosave shown separately. Active slot has accent bar. No screenshots in v0.1.", + "text": "Games grouped by directory (D-085). Expand to see saves. QUICKSAVE + AUTOSAVE are system slots; manual slots below. SAVE tab shows current game only. F5/F6 global hotkeys for quicksave/quickload.", "fontColor": "#3a4455", "fontSize": 10, "wordWrap": true } } -} +} \ No newline at end of file diff --git a/docs/design/wireframes/menus/v01-save-load.png b/docs/design/wireframes/menus/v01-save-load.png index 612bd791b..76c7c7905 100644 Binary files a/docs/design/wireframes/menus/v01-save-load.png and b/docs/design/wireframes/menus/v01-save-load.png differ