fix: QTE false race condition + restore auto-save slot in menu

- QTESystem: add if (!this.active) return guard in setInterval/setTimeout
  callbacks to prevent false result from firing after successful key press
- SaveLoadMenu: restore auto-save slot 0 row with blue styling, thumbnail,
  scene label, and read-only load button
This commit is contained in:
2026-06-07 21:07:21 +08:00
parent e2670c50d4
commit b6eb3c3959
2 changed files with 38 additions and 0 deletions

View File

@@ -20,6 +20,33 @@ const maxSlots = 5
<h2 class="save-title">存档 / 读档</h2>
<div class="slot-list">
<div class="save-slot auto-save-slot">
<div class="slot-thumb">
<img
v-if="saves.find(s => s.slot === 0)?.thumbnail"
:src="saves.find(s => s.slot === 0)!.thumbnail"
class="thumb-img"
/>
<span v-else class="thumb-empty">自动</span>
</div>
<div class="slot-meta">
<div class="slot-label auto-save-label">自动存档</div>
<div class="slot-info" v-if="saves.find(s => s.slot === 0)">
{{ saves.find(s => s.slot === 0)!.sceneLabel }}
</div>
<div class="slot-info empty" v-else>暂无自动存档</div>
</div>
<div class="slot-actions">
<button
class="slot-btn load-btn"
:disabled="!saves.find(s => s.slot === 0)"
@click="emit('load', 0)"
>
读取
</button>
</div>
</div>
<div
v-for="slot in maxSlots"
:key="slot"
@@ -104,6 +131,15 @@ const maxSlots = 5
border-radius: 4px;
}
.auto-save-slot {
border-color: rgba(100, 200, 255, 0.3);
background: rgba(100, 200, 255, 0.06);
}
.auto-save-label {
color: #6cf;
}
.slot-thumb {
width: 64px;
height: 36px;