port 2V2-b: GamePhase dispatch consumes the Entergame burst

PythonNetworkStreamPhaseGame/PhaseGameActor/PhaseGameItem/Command,
NetworkActorManager and PythonChat/PythonChatModule are ported verbatim and
dispatched at runtime; the 2V0 chat stub module is removed and initChat()
runs before initnet() as in 40250. InstanceBase, PythonCharacterManager and
GameLib ActorInstance/RaceData/RaceManager compile but stay TODO until
2V2-c/d wire them.

Units not ported yet get their singletons from PythonBoot's GameSingletons
(CPythonApplication member order) and platform/pending stand-ins generated
by platform_stub.py pending; const char* stand-ins return "".

port.login_flow's fake server now sends the CInputLogin::Entergame order
(actor insert, NPC positions, PHASE_GAME, land list, time, channel, greet
notice, ping) and a TraceError observer asserts no unknown packet header.
port.login_live passes against the real server for 10 s of game phase.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-23 18:20:57 +09:00
co-authored by Claude Opus 5.5
parent d16fabf61c
commit 62b6e23bfc
76 changed files with 21087 additions and 753 deletions
@@ -11,3 +11,123 @@ BOOL CPythonGuild::GetMemberDataPtrByName(const char *, TGuildMemberData **)
MT_PLATFORM_STUB();
return FALSE;
}
auto CPythonGuild::Destroy() -> void
{
MT_PLATFORM_STUB();
}
auto CPythonGuild::EnableGuild() -> void
{
MT_PLATFORM_STUB();
}
auto CPythonGuild::SetGuildMoney(DWORD) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonGuild::SetGuildEXP(BYTE, DWORD) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonGuild::SetGradeData(BYTE, TGuildGradeData &) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonGuild::SetGradeName(BYTE, const char *) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonGuild::SetGradeAuthority(BYTE, BYTE) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonGuild::ClearComment() -> void
{
MT_PLATFORM_STUB();
}
auto CPythonGuild::RegisterComment(DWORD, const char *, const char *) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonGuild::RegisterMember(TGuildMemberData &) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonGuild::ChangeGuildMemberGrade(DWORD, BYTE) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonGuild::ChangeGuildMemberGeneralFlag(DWORD, BYTE) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonGuild::RemoveMember(DWORD) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonGuild::RegisterGuildName(DWORD, const char *) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonGuild::IsMainPlayer(DWORD) -> BOOL
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<BOOL>();
}
auto CPythonGuild::GetGuildInfoRef() -> TGuildInfo &
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<TGuildInfo &>();
}
auto CPythonGuild::GetMemberDataPtrByPID(DWORD, TGuildMemberData **) -> BOOL
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<BOOL>();
}
auto CPythonGuild::GetGuildSkillDataRef() -> TGuildSkillData &
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<TGuildSkillData &>();
}
auto CPythonGuild::GetGuildName(DWORD, std::string *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CPythonGuild::StartGuildWar(DWORD) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonGuild::EndGuildWar(DWORD) -> void
{
MT_PLATFORM_STUB();
}
CPythonGuild::CPythonGuild()
{
MT_PLATFORM_STUB();
}
CPythonGuild::~CPythonGuild()
{
MT_PLATFORM_STUB();
}