The wire moves behind NetTransport (L4NETTRANSPORT): L4NET.CPP taken from RP412 post-seam -- all ~24 Winsock call sites route through NetTransport_Get() -- with BT's 3 BT_NET_TRACE blocks re-sited onto their code anchors (they read message/packet metadata, not sockets, so no collision). Default WinsockNetTransport = the arcade/LAN TCP wire. SteamNetTransport (L4STEAMTRANSPORT, ISteamNetworkingSockets + FakeIP/ SDR) compiles under option(BT412_STEAM) (default OFF); Steamworks SDK 1.64 vendored at extern/steamworks_sdk_164. steam_appid.txt gitignored (Spacewar 480 by hand until a real AppID). Ported gConsoleLossEndsMission from RP412's APPMGR (default False = arcade re-listen). Verified: default TCP build passes full loopback MP through the seam (console -> egg msgID-3 chunks -> mesh complete -> both instances tick, net-tx/net-rx traces fire through NetTransport_Get()); BT412_STEAM=ON compiles + links against the SDK + boots solo. Live Steam session deferred to Phase 6. (Phase 4 of docs/BT412-ROADMAP.md) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
40 lines
926 B
C++
40 lines
926 B
C++
#pragma once
|
|
|
|
#include "app.h"
|
|
|
|
extern HWND ghWnd;
|
|
|
|
// BT412: when True, losing the console mid-race ends the mission (the
|
|
// marshaled/lobby path where the in-process console owns the clock);
|
|
// False = the arcade -net pod re-listens for its console. See APPMGR.cpp.
|
|
extern Logical gConsoleLossEndsMission;
|
|
|
|
class ApplicationManager : public Node
|
|
{
|
|
public:
|
|
ApplicationManager(HINSTANCE hInstance, HWND hWnd, Scalar frame_rate);
|
|
~ApplicationManager();
|
|
|
|
void StartApplication(Application *new_app);
|
|
|
|
void RunMissions();
|
|
|
|
Scalar GetFrameRate()
|
|
{
|
|
Check(this);
|
|
return frameRate;
|
|
}
|
|
|
|
HINSTANCE GetHInstance() { return mHInstance; }
|
|
HWND GetHWnd() { return ghWnd; }
|
|
|
|
static ApplicationManager* GetCurrentManager() { return CurrentAppManager; }
|
|
|
|
protected:
|
|
static ApplicationManager* CurrentAppManager;
|
|
|
|
Scalar frameDuration, frameRate;
|
|
SChainOf<Application*> runningApplications;
|
|
HINSTANCE mHInstance;
|
|
};
|