port: ServerStateChecker + module (batch 2 P2)

Verbatim 40250 CServerStateChecker and the ServerStateChecker Python
module replace the stub; PythonBoot owns the instance like
CPythonApplication::m_kServerStateChecker. The fake server gets a state
port that answers CG_STATE_CHECKER the way CInputHandshake and
CInputDB::RespondChannelStatus do; login_flow requests the channel list
after the character list (live: {1: 1, 2: 1}).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-24 00:27:35 +09:00
co-authored by Claude Opus 5.5
parent be5a68ff35
commit ce9f96398e
13 changed files with 362 additions and 32 deletions
+1
View File
@@ -529,3 +529,4 @@
{"time": "2026-09-24T02:00:00Z", "event": "port_round", "unit": "PORT-PLAN batch 2 P0: UserInterface/PythonCharacterManager.cpp + InstanceBaseMovement.cpp", "ported": ["UserInterface/PythonCharacterManager.cpp (54)", "UserInterface/InstanceBaseMovement.cpp (32)"], "adapted": [], "divergent": [], "needs_live": [], "tests": ["diff vs 40250: include case, comment encoding, 2 PORT edits only", "ctest all: 19/19 incl. port.login_live 192.168.21.203", "port_map.py check: 0 errors"], "todo": ["P1 queue: FlyingInstance, ActorInstanceData, FlyingObjectManager, FlyTrace"]}
{"time": "2026-09-24T03:00:00Z", "event": "port_round", "unit": "PORT-PLAN batch 2 P1: flying objects + effect/fly Python modules", "ported": ["GameLib/FlyingData.cpp (12)", "GameLib/FlyingInstance.cpp (20)", "GameLib/FlyingObjectManager.cpp (12)", "GameLib/FlyTrace.cpp (11)", "GameLib/ActorInstanceData.cpp (12)", "UserInterface/PythonEffectModule.cpp (8)", "UserInterface/PythonFlyModule.cpp (3)"], "adapted": ["CMapManager::GetTerrainHeight over native height tiles; GetHeight forwards to it"], "divergent": [], "needs_live": [], "tests": ["port.login_flow: indexed fly .msf registered by playersettingmodule and parses", "ctest all: 19/19 incl. port.login_live 192.168.21.203", "script/python_game_render_test.sh offline: PASS", "port_map.py check: 0 errors"], "todo": ["CEffectManager is a platform stub: fly effects are not rendered", "P2 network units already copied into port/ need verification and marking"]}
{"time": "2026-09-24T04:00:00Z", "event": "port_round", "unit": "PORT-PLAN batch 2: verify and mark 28 units copied into port/ in 2V1/2A", "ported": ["28 units, 372 functions: PythonNetworkStream{,PhaseLoading,PhaseLogin,PhaseSelect,PhaseHandShake,PhaseOffline,Event}, AccountConnector, NetStream, NetPacketHeaderMap, NetAddress, NetDevice, TextTag, EterPack, EterPackManager, EterPackCursor, EterPackPolicy_CSHybridCrypt, Timer, cipher, lzo, Random, Stl, tea, Arabic, StringCodec, StringCodec_Vietnamese, InsultChecker, AffectFlagContainer"], "adapted": [], "divergent": [], "needs_live": [], "tests": ["port_copy.py diff: 23 exact mechanical copies, 5 with // PORT: edits only; StringCodec_Vietnamese (not CP949) differs by BOM + include case", "no same-named platform/pending files", "ctest all 19/19 + render test on the same tree", "port_map.py check: 0 errors"], "todo": ["P2 ServerStateChecker (module still stubbed)", "P3 items/minimap/text tail"]}
{"time": "2026-09-24T05:00:00Z", "event": "port_round", "unit": "PORT-PLAN batch 2 P2: ServerStateChecker + module", "ported": ["UserInterface/ServerStateChecker.cpp", "UserInterface/ServerStateCheckerModule.cpp"], "adapted": [], "divergent": [], "needs_live": [], "tests": ["port.login_flow: fake state port answers CG_STATE_CHECKER, NotifyChannelState(2, 1)", "port.login_live 192.168.21.203: channel states {1: 1, 2: 1}", "ctest all 19/19, python_game_render_test offline PASS", "port_map.py check: 0 errors"], "todo": ["P3 item chain: ItemData, ItemManager, PythonItem, PythonExchange"]}
@@ -0,0 +1,50 @@
{
"reference": "UserInterface/ServerStateChecker.cpp",
"reference_sha256": "89f157c56f486a92c7bfe695853b9165b727d77dfdca5e360d256a9ff153d511",
"priority": "P2",
"contracts": [],
"functions": {
"CServerStateChecker::CServerStateChecker": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/ServerStateChecker.cpp:CServerStateChecker::CServerStateChecker"
]
},
"CServerStateChecker::~CServerStateChecker": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/ServerStateChecker.cpp:CServerStateChecker::~CServerStateChecker"
]
},
"CServerStateChecker::Create": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/ServerStateChecker.cpp:CServerStateChecker::Create"
]
},
"CServerStateChecker::AddChannel": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/ServerStateChecker.cpp:CServerStateChecker::AddChannel"
]
},
"CServerStateChecker::Request": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/ServerStateChecker.cpp:CServerStateChecker::Request"
]
},
"CServerStateChecker::Update": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/ServerStateChecker.cpp:CServerStateChecker::Update"
]
},
"CServerStateChecker::Initialize": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/ServerStateChecker.cpp:CServerStateChecker::Initialize"
]
}
}
}
@@ -0,0 +1,44 @@
{
"reference": "UserInterface/ServerStateCheckerModule.cpp",
"reference_sha256": "eb402b63df2c32bd69287d8c02f717e8ff586204917e02bb5850b956f75e3609",
"priority": "P4",
"contracts": [],
"functions": {
"ServerStateCheckerCreate": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/ServerStateCheckerModule.cpp:ServerStateCheckerCreate"
]
},
"ServerStateCheckerUpdate": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/ServerStateCheckerModule.cpp:ServerStateCheckerUpdate"
]
},
"ServerStateCheckerRequest": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/ServerStateCheckerModule.cpp:ServerStateCheckerRequest"
]
},
"ServerStateCheckerAddChannel": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/ServerStateCheckerModule.cpp:ServerStateCheckerAddChannel"
]
},
"ServerStateCheckerInitialize": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/ServerStateCheckerModule.cpp:ServerStateCheckerInitialize"
]
},
"initServerStateChecker": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/ServerStateCheckerModule.cpp:initServerStateChecker"
]
}
}
}