Console: seat lines speak PLAYER ordinals, not raw host ids

'SEAT 2 READY' for the first (only) player read as an off-by-one (field
report) -- host 1 is the CONSOLE in the authentic 1995 numbering, so
pods start at host 2.  Human-facing lines now read PLAYER 1/2/... with
the host id in parentheses for cross-reference against the game[host=N]
wire lines; GUI monitor regexes updated (tag-keyed as before, verified
seated/ready/left in isolation).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
arcattack
2026-07-22 20:54:06 -05:00
co-authored by Claude Opus 4.8
parent 7b3e76db38
commit 2f4b2f9e91
2 changed files with 14 additions and 8 deletions
+6 -3
View File
@@ -64,9 +64,12 @@ class SessionMonitor:
RE_RELAY_DOWN = re.compile(r"game\[.* host=(\d+)\] dropped")
RE_RELAY_WAITOP = re.compile(r"WAITING FOR OPERATOR")
RE_RELAY_SEAT = re.compile(
r"SEAT (\d+) PRESENT tag='([^']*)' callsign='([^']*)' mech='([^']*)'")
RE_RELAY_FREED = re.compile(r"SEAT (\d+) FREED tag='([^']*)'")
RE_RELAY_READY = re.compile(r"SEAT (\d+) READY tag='([^']*)'")
r"PLAYER (\d+) SEATED \(host \d+\) tag='([^']*)' "
r"callsign='([^']*)' mech='([^']*)'")
RE_RELAY_FREED = re.compile(
r"PLAYER (\d+) LEFT \(host \d+\) tag='([^']*)'")
RE_RELAY_READY = re.compile(
r"PLAYER (\d+) READY \(host \d+\) tag='([^']*)'")
RE_MESH_EGG = re.compile(r"\[([^\]]+)\] egg sent")
RE_MESH_RUN = re.compile(r"\[([^\]]+)\] RunMission #(\d+) sent")