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
@@ -0,0 +1,26 @@
{
"reference": "UserInterface/CameraProcedure.cpp",
"reference_sha256": "b3c676fbf1e637181b53ae8de7631e5fafd9a7a39b5e98261d11dee0d5364312",
"priority": "P4",
"contracts": [],
"functions": {
"CCamera::ProcessTerrainCollision": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/CameraProcedure.cpp:CCamera::ProcessTerrainCollision"
]
},
"CCamera::ProcessBuildingCollision": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/CameraProcedure.cpp:CCamera::ProcessBuildingCollision"
]
},
"CCamera::Update": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/CameraProcedure.cpp:CCamera::Update"
]
}
}
}
@@ -0,0 +1,248 @@
{
"reference": "UserInterface/PythonCharacterManagerModule.cpp",
"reference_sha256": "bab53370d95383243f0e04338e63df48c2cd71d44f97414cfe91cd10ba149c4c",
"priority": "P4",
"contracts": [],
"functions": {
"chrmgrSetEmpireNameMode": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrSetEmpireNameMode"
]
},
"chrmgrRegisterTitleName": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrRegisterTitleName"
]
},
"chrmgrRegisterNameColor": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrRegisterNameColor"
]
},
"chrmgrRegisterTitleColor": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrRegisterTitleColor"
]
},
"chrmgrGetPickedVID": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrGetPickedVID"
]
},
"chrmgrGetVIDInfo": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrGetVIDInfo"
]
},
"chrmgrSetPathName": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrSetPathName"
]
},
"chrmgrCreateRace": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrCreateRace"
]
},
"chrmgrSelectRace": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrSelectRace"
]
},
"chrmgrRegisterAttachingBoneName": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrRegisterAttachingBoneName"
]
},
"chrmgrRegisterMotionMode": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrRegisterMotionMode"
]
},
"chrmgrSetMotionRandomWeight": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrSetMotionRandomWeight"
]
},
"chrmgrRegisterNormalAttack": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrRegisterNormalAttack"
]
},
"chrmgrReserveComboAttack": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrReserveComboAttack"
]
},
"chrmgrRegisterComboAttack": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrRegisterComboAttack"
]
},
"chrmgrReserveComboAttackNew": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrReserveComboAttackNew"
]
},
"chrmgrRegisterComboAttackNew": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrRegisterComboAttackNew"
]
},
"chrmgrLoadRaceData": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrLoadRaceData"
]
},
"chrmgrLoadLocalRaceData": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrLoadLocalRaceData"
]
},
"chrmgrRegisterCacheMotionData": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrRegisterCacheMotionData"
]
},
"chrmgrRegisterMotionData": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrRegisterMotionData"
]
},
"chrmgrRegisterRaceSrcName": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrRegisterRaceSrcName"
]
},
"chrmgrRegisterRaceName": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrRegisterRaceName"
]
},
"chrmgrSetShapeModel": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrSetShapeModel"
]
},
"chrmgrAppendShapeSkin": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrAppendShapeSkin"
]
},
"chrmgrSetMovingSpeed": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrSetMovingSpeed"
]
},
"chrmgrRegisterEffect": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrRegisterEffect"
]
},
"chrmgrRegisterCacheEffect": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrRegisterCacheEffect"
]
},
"chrmgrSetDustGap": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrSetDustGap"
]
},
"chrmgrSetHorseDustGap": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrSetHorseDustGap"
]
},
"chrmgrToggleDirectionLine": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrToggleDirectionLine"
]
},
"chrmgrRegisterPointEffect": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrRegisterPointEffect"
]
},
"chrmgrShowPointEffect": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrShowPointEffect"
]
},
"CPythonCharacterManager::SCRIPT_SetAffect": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:CPythonCharacterManager::SCRIPT_SetAffect"
]
},
"chrmgrSetAffect": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrSetAffect"
]
},
"CPythonCharacterManager::SetEmoticon": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:CPythonCharacterManager::SetEmoticon"
]
},
"CPythonCharacterManager::IsPossibleEmoticon": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:CPythonCharacterManager::IsPossibleEmoticon"
]
},
"chrmgrSetEmoticon": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrSetEmoticon"
]
},
"chrmgrIsPossibleEmoticon": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:chrmgrIsPossibleEmoticon"
]
},
"initchrmgr": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterManagerModule.cpp:initchrmgr"
]
}
}
}
@@ -0,0 +1,482 @@
{
"reference": "UserInterface/PythonCharacterModule.cpp",
"reference_sha256": "b0f4a420d3dd4f2d3a8ff8de9b4ddc369d4b05118fa812d4914669035d2cdf2d",
"priority": "P4",
"contracts": [],
"functions": {
"chrRaceToJob": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrRaceToJob"
]
},
"chrRaceToSex": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrRaceToSex"
]
},
"chrDestroy": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrDestroy"
]
},
"chrUpdate": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrUpdate"
]
},
"chrDeform": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrDeform"
]
},
"chrRender": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrRender"
]
},
"chrRenderCollision": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrRenderCollision"
]
},
"chrCreateInstance": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrCreateInstance"
]
},
"chrDeleteInstance": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrDeleteInstance"
]
},
"chrDeleteInstanceByFade": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrDeleteInstanceByFade"
]
},
"chrSelectInstance": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSelectInstance"
]
},
"chrHasInstance": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrHasInstance"
]
},
"chrIsEnemy": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrIsEnemy"
]
},
"chrIsNPC": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrIsNPC"
]
},
"chrIsGameMaster": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrIsGameMaster"
]
},
"chrIsPartyMember": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrIsPartyMember"
]
},
"chrSelect": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSelect"
]
},
"chrSetAddRenderMode": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSetAddRenderMode"
]
},
"chrSetBlendRenderMode": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSetBlendRenderMode"
]
},
"chrUnselect": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrUnselect"
]
},
"chrPick": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrPick"
]
},
"chrHide": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrHide"
]
},
"chrShow": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrShow"
]
},
"chrPickAll": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrPickAll"
]
},
"chrSetRace": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSetRace"
]
},
"chrSetHair": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSetHair"
]
},
"chrChangeHair": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrChangeHair"
]
},
"chrSetArmor": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSetArmor"
]
},
"chrChangeShape": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrChangeShape"
]
},
"chrSetWeapon": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSetWeapon"
]
},
"chrSetVirtualID": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSetVirtualID"
]
},
"chrSetNameString": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSetNameString"
]
},
"chrSetInstanceType": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSetInstanceType"
]
},
"chrAttachEffectByName": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrAttachEffectByName"
]
},
"chrAttachEffectByID": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrAttachEffectByID"
]
},
"chrRefresh": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrRefresh"
]
},
"chrMountHorse": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrMountHorse"
]
},
"chrDismountHorse": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrDismountHorse"
]
},
"chrRevive": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrRevive"
]
},
"chrDie": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrDie"
]
},
"chrLookAt": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrLookAt"
]
},
"chrSetMotionMode": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSetMotionMode"
]
},
"chrSetLoopMotion": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSetLoopMotion"
]
},
"chrBlendLoopMotion": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrBlendLoopMotion"
]
},
"chrPushOnceMotion": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrPushOnceMotion"
]
},
"chrPushLoopMotion": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrPushLoopMotion"
]
},
"chrSetPixelPosition": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSetPixelPosition"
]
},
"chrSetDirection": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSetDirection"
]
},
"chrGetPixelPosition": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrGetPixelPosition"
]
},
"chrSetRotation": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSetRotation"
]
},
"chrSetRotationAll": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSetRotationAll"
]
},
"chrBlendRotation": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrBlendRotation"
]
},
"chrGetRotation": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrGetRotation"
]
},
"chrGetRace": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrGetRace"
]
},
"chrGetName": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrGetName"
]
},
"chrGetNameByVID": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrGetNameByVID"
]
},
"chrGetGuildID": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrGetGuildID"
]
},
"chrGetProjectPosition": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrGetProjectPosition"
]
},
"chrGetVirtualNumber": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrGetVirtualNumber"
]
},
"chrGetInstanceType": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrGetInstanceType"
]
},
"chrGetBoundBoxOnlyXY": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrGetBoundBoxOnlyXY"
]
},
"chrtestGetPKData": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrtestGetPKData"
]
},
"chrtestSetComboType": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrtestSetComboType"
]
},
"chrtestSetAddRenderMode": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrtestSetAddRenderMode"
]
},
"chrtestSetModulateRenderMode": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrtestSetModulateRenderMode"
]
},
"chrtestSetAddRenderModeRGB": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrtestSetAddRenderModeRGB"
]
},
"chrtestSetModulateRenderModeRGB": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrtestSetModulateRenderModeRGB"
]
},
"chrtestSetSpecularRenderMode": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrtestSetSpecularRenderMode"
]
},
"chrtestSetSpecularRenderMode2": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrtestSetSpecularRenderMode2"
]
},
"chrtestRestoreRenderMode": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrtestRestoreRenderMode"
]
},
"chrFaintTest": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrFaintTest"
]
},
"chrSetMoveSpeed": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSetMoveSpeed"
]
},
"chrSetAttackSpeed": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrSetAttackSpeed"
]
},
"chrWeaponTraceSetTexture": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrWeaponTraceSetTexture"
]
},
"chrWeaponTraceUseTexture": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrWeaponTraceUseTexture"
]
},
"chrWeaponTraceUseAlpha": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrWeaponTraceUseAlpha"
]
},
"chrMoveToDestPosition": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrMoveToDestPosition"
]
},
"chrtestSetRideMan": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:chrtestSetRideMan"
]
},
"initchr": {
"status": "PORTED",
"impl": [
"extension/src/port/UserInterface/PythonCharacterModule.cpp:initchr"
]
}
}
}