https://gitlab.synchro.net/main/sbbs/-/commit/86c307f61f12b958fce9d3ec
Modified Files:
src/doors/syncduke/syncduke.h syncduke_door.c syncduke_events.c syncduke_game.c xtrn/syncduke/syncduke_lib.js
Log Message:
syncduke: log what killed the player and an end-of-session record
SyncDuke's activity log said less than SyncDOOM's, and its lobby feed
less again. Bring both up to SyncDOOM's level of detail:
- The "death" record gains "cause" (environment, suicide, monster or
player) and, for a player kill, "by". A player kill is read from the
frag the engine credits to the killer, which also covers kills with
no damaging sprite (a stomp, a telefrag); otherwise the cause is the
owner of the lethal hit: the player's own explosive, an enemy, or
neither (a barrel or trap, a fall, drowning, a crusher).
- A new "end" record (mode, frags, seconds since "start") is written
when the door exits, on the hangup path too. Duke has no game-over
edge to hang it on, since a death or level change drops MODE_GAME
just as quitting to the menu does, so it is one record per session.
- The lobby feed words a death by its cause, as SyncDOOM's does, and
omits one at another player's hands (the killer's "fragged" line
already reports it). A frag line now names the map. A death record
without a cause, from an older door, still reads "died on <map>".
No vendored engine or game source is changed.
Co-Authored-By: Claude Fable 5.2 <
noreply@anthropic.com>
---
■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net