• src/doors/syncduke/syncduke.h syncduke_door.c syncduke_events.c syncdu

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sat Nov 14 17:21:49 2026
    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