• src/doors/syncmoo1/1oom/s

    From Rob Swindell (on Debian L@VERT to Git commit to main/sbbs/m on Monday, July 13, 2026 00:36:00
    https://gitlab.synchro.net/main/sbbs/-/commit/0e9aa0df77a0457b69feefc4
    Modified Files:
    src/doors/syncmoo1/1oom/src/game/game.c src/doors/syncmoo1/1oom/src/ui/classic/uimainmenu.c uinewgame.c src/doors/syncmoo1/CLAUDE.md PROVENANCE.md
    Log Message:
    syncmoo1: default the emperor name to the BBS alias, "Quit to BBS"

    Two player-facing UI fixes that have no hw/os backend seam, so they are
    direct edits to the vendored 1oom classic UI, carried as documented
    local patches (tagged in-code, listed in PROVENANCE.md). This also
    establishes the local-patch policy for this door, mirroring
    ../syncconquer -- see the updated PROVENANCE.md and CLAUDE.md.

    Emperor name (PROVENANCE #1 + #3): the new-game "Your Name..." prompt
    now defaults to the player's BBS alias instead of a random generated
    name. The door already passed the alias via 1oom's own
    -ngn 1 <alias>, but two things discarded it: the interactive menu
    builds a fresh game_new_opts (GAME_NEW_OPTS_DEFAULT, empty names) and
    only copied the -ngn names on the -new auto-start path (game.c), and
    the name-entry field regenerated a random name unconditionally
    (uinewgame.c, flag_generate). Patch #3 copies the pre-filled names into game_new_opts before the menu; patch #1 makes the field seed from them
    when present, falling back to a generated name when empty (AI players,
    or no drop file). Both are required.

    Quit to BBS (PROVENANCE #2): the main-menu "Quit to OS" label now reads
    "Quit to BBS", which is what leaving the door does for a BBS user. The
    classic menu uses the string literal directly, not the reassignable game_str_mm_quit global (that one is read only by 1oom's cmdline UI),
    so there is no non-patch route.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Thursday, July 23, 2026 02:11:00
    https://gitlab.synchro.net/main/sbbs/-/commit/9323e823ebdeadf128da82ec
    Modified Files:
    src/doors/syncmoo1/1oom/src/ui/classic/uimainmenu.c src/doors/syncmoo1/CMakeLists.txt PROVENANCE.md syncmoo1.h syncmoo1_door.c
    Log Message:
    syncmoo1: show the door's own version/git/date on the main menu

    1oom's main-menu footer named only the ENGINE ("1oom v1.11.8",
    right-aligned at x=315 on the one 320px row left free below the title
    art) -- nothing there identified the door, or which build of it a user
    was running. Add the door's version, git hash and build date at the
    left of that same row: the version/git/date footer the sibling termgfx
    doors already paint (SyncDOOM's m_menu.c, SyncDuke's menues.c,
    SyncRetro's main.c).

    The content and the fitting rule live door-side, in
    sm_door_version_line() (syncmoo1_door.c). The line is built longest-
    first and sheds its tail -- the site, then the date, then the hash --
    until lbxfont_calc_str_width() says it fits the gap left of 1oom's own
    string, since the LBX glyph widths are not known until runtime. That
    keeps the vendored patch to one #include plus one call (PROVENANCE #4):
    the classic UI draws this footer inline in main_menu_draw_cb() with no
    hook, override or reassignable string global, so there is no backend
    seam to route it through.

    gitinfo.cmake's '~' dirty-tree prefix is translated to '*' for this
    door. '~' is the last slot of MOO's 96-glyph 0x20..0x7e table and is
    width 0 with zero lit pixels in EVERY font in FONTS.LBX, so the marker
    drew nothing at all and a dirty build read exactly like a clean one.
    The shared macro is left alone -- '~' renders fine everywhere else.

    Verified on a live SyncTERM session against the Win32/MSVC build; not
    yet compiled under GCC/Clang.

    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net