fix(client): address PR #43 review — walk key mismatch + 5 suggestions

Fix SOUND_EVENT_ASSETS walk-speed keys to match actual filename
(sfx_footstep_metal_walk), add play_loop null guard, source indicator
colors from Constants, extract CAMERA_DEFAULT_ZOOM, document
consume-once semantics on close_sound_events.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-19 15:37:20 +01:00
co-authored by Claude Opus 4.6
parent e1a1a9cfc2
commit dfcafee3ee
5 changed files with 18 additions and 11 deletions
+6 -4
View File
@@ -142,6 +142,8 @@ func play_loop(asset_key: String, bus: String = BUS_AMBIENT) -> AudioStreamPlaye
return null
stop_loop(asset_key)
var loop_stream := stream.duplicate() as AudioStream
if loop_stream == null:
return null
_enable_loop(loop_stream)
var player := AudioStreamPlayer.new()
player.stream = loop_stream
@@ -175,10 +177,10 @@ func stop_all_loops() -> void:
# No asset for Voice events in v0.1 — play_sound_event no-ops gracefully
# (D-038: "renders as audio if asset exists, or visual indicator + monologue if not").
const SOUND_EVENT_ASSETS: Dictionary = {
"Footstep": "sfx_footstep_metal",
"FootstepWalk": "sfx_footstep_metal",
"FootstepCareful":"sfx_footstep_metal",
"FootstepCrouch": "sfx_footstep_metal",
"Footstep": "sfx_footstep_metal_walk",
"FootstepWalk": "sfx_footstep_metal_walk",
"FootstepCareful":"sfx_footstep_metal_walk", # D-053: same asset until stance-differentiated audio lands
"FootstepCrouch": "sfx_footstep_metal_walk", # D-053: same asset until stance-differentiated audio lands
"FootstepSprint": "sfx_footstep_metal_run",
"FootstepRun": "sfx_footstep_metal_run",
}