KDChat/KDChat/Sounds
Blake Oliver f9c751a993
Chat sounds, message card UI, own-message detection, and crash fix
Sounds:
- Add chat sounds (global, map, DM) converted from game client ogg to caf
- Audio category .ambient (mixes with other audio, respects silent switch)
- Per-buffer sound toggles and background buffer sound option in Settings

Messages:
- Card-style message rows with .regularMaterial background, bumped fonts (content .title3, sender .headline)
- Context menu and VoiceOver actions: DM and Show Profile on other players' messages
- Generate local UUIDs for message identity (server ID field is not unique, caused ForEach to collapse messages)

Own-message detection:
- Capture player entity ID from LoadInstance packet (Key 1) on game join
- Hide DM/Profile actions on own messages via senderId comparison

Crash fix:
- Guard all UInt64 timestamp subtractions against underflow (retransmitPending, ping, disconnect timeout)
2026-04-05 08:15:31 -06:00
..
direct-message.caf Chat sounds, message card UI, own-message detection, and crash fix 2026-04-05 08:15:31 -06:00
global.caf Chat sounds, message card UI, own-message detection, and crash fix 2026-04-05 08:15:31 -06:00
map.caf Chat sounds, message card UI, own-message detection, and crash fix 2026-04-05 08:15:31 -06:00