Terminology: BattleTech missions, not races
"Race" is Red Planet's term (it's a racing game) and rode in with the
RPL4LOBBY port. In BattleTech the gameplay unit is a MISSION. Sweep it out
of the front-end / lobby / marshal code + the roadmap and steamification
digest: rename the public API BTLobby_Push/PullRaceResults ->
Push/PullMissionResults, the internal PrimeHostedRace -> PrimeHostedMission,
the deferred marshal InstallNetworkRace -> InstallNetworkMission, and the
user-facing strings ("STEAM MISSION LOBBY", "L A U N C H M I S S I O N",
"HOST/JOIN STEAM MISSION"). Comments follow. No behavior change; both gates
(default + BT412_STEAM) still build + link clean.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -139,7 +139,7 @@ identical-to-baseline → take RP412's file verbatim, diverged → hand-apply th
|
||||
console on its own thread over NetTransport — egg chunks + ACK, RunMission ×2
|
||||
(mirror btconsole.py), stays connected (fixes the console-loss listener bug for
|
||||
solo), owns the mission clock, StopMission at `length=` expiry, launcher-role loop,
|
||||
`InstallNetworkRace` marshal for remote pods.
|
||||
`InstallNetworkMission` marshal for remote pods.
|
||||
- **5c Score intake — genuinely new for BT** (no mission-end flow exists): a
|
||||
`gConsoleScoreSink` equivalent through `BTPlayer`; v1 results screen = kills/deaths
|
||||
per pilot from the Comm-MFD `pilotList` tally at stop.
|
||||
@@ -160,7 +160,7 @@ identical-to-baseline → take RP412's file verbatim, diverged → hand-apply th
|
||||
> `Application::StopMissionMessage` at the chosen length; it snapshots per-pilot
|
||||
> kills/deaths at the stop (BT's own score model — msgID 0x18 stays a stub). The
|
||||
> single-binary loop is a RELAUNCH per mission (`CreateProcessW`; avoids the stale
|
||||
> `gBT*`-global re-init crash), showing a GDI "MISSION COMPLETE" scoreboard between races.
|
||||
> `gBT*`-global re-init crash), showing a GDI "MISSION COMPLETE" scoreboard between missions.
|
||||
> WinMain (`game/btl4main.cpp`) wires front-end-mode detection, the marshal arm, the
|
||||
> results screen + relaunch, and the launch-mode branch (solo/host/member). Details in
|
||||
> `context/steamification.md`.
|
||||
@@ -170,7 +170,7 @@ identical-to-baseline → take RP412's file verbatim, diverged → hand-apply th
|
||||
- **`game/reconstructed/btl4lobby.cpp`** (skeleton: `RPL4LOBBY.cpp` — mechanics
|
||||
generic): lobby owner = console; member data = FakeIP + fake console/game ports +
|
||||
persona + loadout (**mech**/color/badge); nonced launch roster → `RegisterPeer` all →
|
||||
owner hosts via egg+marshal, members join as network pods; Push/PullRaceResults
|
||||
owner hosts via egg+marshal, members join as network pods; Push/PullMissionResults
|
||||
distribute the score sheet. FE gains HOST/JOIN screens.
|
||||
- Author `docs/STEAM-3-MACHINE-TEST.md` for BT (adapt RP412's; keep its gotchas:
|
||||
disable Steam Input on 480, one Steam account per machine, abort key).
|
||||
@@ -183,14 +183,14 @@ identical-to-baseline → take RP412's file verbatim, diverged → hand-apply th
|
||||
> `BT412_STEAM`, full ISteamMatchmaking room under it). Built: the room screen (green-on-black,
|
||||
> like the menu), member data exchange (FakeIP + fake console/game ports + persona +
|
||||
> mech/color/badge), the nonced "go" launch roster → `SteamNetTransport_RegisterPeer` all peers,
|
||||
> and Push/PullRaceResults over lobby data. The menu shows HOST/JOIN when `BTLobby_Available()`
|
||||
> and Push/PullMissionResults over lobby data. The menu shows HOST/JOIN when `BTLobby_Available()`
|
||||
> (Steam transport up); a launch routes through `BTFrontEnd_LastLaunchMode()`: **host** builds the
|
||||
> egg with every member as a `[pilots]` entry + owns the marshal clock, **member** enters as a
|
||||
> network pod on `:1501` (`SetNetworkCommonFlatAddress` + `gConsoleLossEndsMission`). WinMain
|
||||
> installs the Steam transport on `BT412STEAM` env. **Remaining / deferred:** the host→member
|
||||
> **wire egg-feed marshal** (`InstallNetworkRace` — the owner streaming eggs to remote pods) is
|
||||
> **wire egg-feed marshal** (`InstallNetworkMission` — the owner streaming eggs to remote pods) is
|
||||
> NOT built; a member currently waits for a console connection that only that marshal provides, so
|
||||
> a live host+member race needs it. The lobby OBJECT does not survive the per-mission relaunch
|
||||
> a live host+member mission needs it. The lobby OBJECT does not survive the per-mission relaunch
|
||||
> (documented single-binary limitation — everyone lands on a fresh menu, not back in the room).
|
||||
> `docs/STEAM-3-MACHINE-TEST.md` for BT is not yet authored. Details in `context/steamification.md`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user