port 2V2-c: chrmgr/chr modules + race registration chain

PythonCharacterManagerModule/PythonCharacterModule ported verbatim; the
2V0 chr/chrmgr stubs are gone and initchr/initchrmgr run in 40250 order.
The registration chain they need (RaceData/RaceDataFile/RaceManager/
RaceMotionData, GameType, AttributeData/AttributeInstance, TextFileLoader,
Util, Camera/CameraProcedure) is ported; CRaceManager is created in
PythonBoot. port.login_flow asserts race 0 has its wait motions and no
unhandled packet header; port.login_live 8/8 against 192.168.21.203.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-23 18:40:47 +09:00
co-authored by Claude Opus 5.5
parent 62b6e23bfc
commit 996d793f0c
39 changed files with 8270 additions and 625 deletions
+120
View File
@@ -0,0 +1,120 @@
{
"reference": "EterLib/Util.cpp",
"reference_sha256": "6bbb3a040afb38891e534689ea3ccdb4eafae4101ad2bb7a09c2a208fcaa35f3",
"priority": "P4",
"contracts": [],
"functions": {
"PrintfTabs": {
"status": "PORTED",
"impl": [
"extension/src/port/EterLib/Util.cpp:PrintfTabs"
]
},
"LoadTextData": {
"status": "PORTED",
"impl": [
"extension/src/port/EterLib/Util.cpp:LoadTextData"
]
},
"LoadMultipleTextData": {
"status": "PORTED",
"impl": [
"extension/src/port/EterLib/Util.cpp:LoadMultipleTextData"
]
},
"TokenToVector": {
"status": "PORTED",
"impl": [
"extension/src/port/EterLib/Util.cpp:TokenToVector"
]
},
"TokenToColor": {
"status": "PORTED",
"impl": [
"extension/src/port/EterLib/Util.cpp:TokenToColor"
]
},
"EnumFontFamExProc": {
"status": "N_A",
"note": "Win32 font enumeration; the platform font backend owns code page/font face"
},
"GetCharsetFromCodePage": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/EterLib/Util.cpp:GetCharsetFromCodePage"
],
"note": "lives with the platform font backend",
"test": "extension/tests/port_login_flow_test.cpp (PythonBoot SetDefaultCodePage(LocaleService_GetCodePage()) -> CP949 text through GrpTextInstance in the login/select/game UI)"
},
"GetFontFaceFromCodePageNT": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/EterLib/Util.cpp:GetFontFaceFromCodePageNT"
],
"note": "lives with the platform font backend",
"test": "extension/tests/port_login_flow_test.cpp (PythonBoot SetDefaultCodePage(LocaleService_GetCodePage()) -> CP949 text through GrpTextInstance in the login/select/game UI)"
},
"GetFontFaceFromCodePage9x": {
"status": "N_A",
"note": "Win32 font enumeration; the platform font backend owns code page/font face"
},
"GetDefaultCodePage": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/EterLib/Util.cpp:GetDefaultCodePage"
],
"note": "lives with the platform font backend",
"test": "extension/tests/port_login_flow_test.cpp (PythonBoot SetDefaultCodePage(LocaleService_GetCodePage()) -> CP949 text through GrpTextInstance in the login/select/game UI)"
},
"GetDefaultFontFace": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/EterLib/Util.cpp:GetDefaultFontFace"
],
"note": "lives with the platform font backend",
"test": "extension/tests/port_login_flow_test.cpp (PythonBoot SetDefaultCodePage(LocaleService_GetCodePage()) -> CP949 text through GrpTextInstance in the login/select/game UI)"
},
"GetFontFaceFromCodePage": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/EterLib/Util.cpp:GetFontFaceFromCodePage"
],
"note": "lives with the platform font backend",
"test": "extension/tests/port_login_flow_test.cpp (PythonBoot SetDefaultCodePage(LocaleService_GetCodePage()) -> CP949 text through GrpTextInstance in the login/select/game UI)"
},
"SetDefaultFontFace": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/EterLib/Util.cpp:SetDefaultFontFace"
],
"note": "lives with the platform font backend",
"test": "extension/tests/port_login_flow_test.cpp (PythonBoot SetDefaultCodePage(LocaleService_GetCodePage()) -> CP949 text through GrpTextInstance in the login/select/game UI)"
},
"SetDefaultCodePage": {
"status": "ADAPTED",
"impl": [
"extension/src/platform/EterLib/Util.cpp:SetDefaultCodePage"
],
"note": "lives with the platform font backend",
"test": "extension/tests/port_login_flow_test.cpp (PythonBoot SetDefaultCodePage(LocaleService_GetCodePage()) -> CP949 text through GrpTextInstance in the login/select/game UI)"
},
"__base64_get": {
"status": "PORTED",
"impl": [
"extension/src/port/EterLib/Util.cpp:__base64_get"
]
},
"__strcat1": {
"status": "PORTED",
"impl": [
"extension/src/port/EterLib/Util.cpp:__strcat1"
]
},
"base64_decode": {
"status": "PORTED",
"impl": [
"extension/src/port/EterLib/Util.cpp:base64_decode"
]
}
}
}