fix(client): address PR #25 review — 5 critical bugs, 4 warnings, 3 suggestions
Critical fixes: - hide_dialogue() sent PAUSE instead of UNPAUSE, permanently freezing simulation after every dialogue (both reviewers) - Confrontation monologue hardcoded in GDScript constant, violating D-042/D-020 — moved to ui-strings.yaml as dialogue.confrontation_beat - Walk-away WASD didn't call set_input_as_handled(), letting movement event propagate and potentially stepping on the same frame - is_dialogue_active() returned _is_showing only — interaction list could flash during 300ms fade gap. Now includes dialogue_active state - Removed dead _last_dialogue_id / get_dialogue_id() state (never read) Warnings addressed: - Audio registry now scans res://audio/ recursively (subdirs registered) - add_bus_effect guarded against duplicate calls in tests - int64 encoder dead code tagged KNOWN-DEFECT, filed as ticket #516 - D-073 zone crossfade stub comment clarifies Sprint 9+ deferral - listening_focus dip documents caller tick-gate responsibility (D-069/D-071) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -13,10 +13,6 @@ extends Node2D
|
||||
@onready var stance_indicator = $UILayer/StanceIndicator # D-053: z-layer 7
|
||||
@onready var cursor_renderer = $UILayer/CursorRenderer # D-056: z-layer 7
|
||||
|
||||
# Tracks the dialogue_id from dialogue_box to prevent consume-once race during fade-in.
|
||||
# If a new snapshot arrives with null dialogue while fade-in is still running,
|
||||
# we don't re-trigger show_dialogue because _last_dialogue_id still matches.
|
||||
var _last_dialogue_id: int = 0
|
||||
var _last_dialogue_npc_id: int = -1 # D-064: NPC entity_id for WalkAway input
|
||||
var _camera_anchored: bool = false
|
||||
var _last_monologue_tick: int = -1 # Prevent re-consuming monologue when same tick polled twice
|
||||
@@ -169,7 +165,6 @@ func _consume_dialogue() -> void:
|
||||
dlg.get("speech", ""),
|
||||
dlg.get("options", [])
|
||||
)
|
||||
_last_dialogue_id = dialogue_box.get_dialogue_id()
|
||||
GameState.current_dialogue = null
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user