port 2V2-d.1: ActorInstance/InstanceBase closure creates the main character

Port the ActorInstance*/InstanceBase* siblings plus GameUtil, FlyTarget,
PhysicsObject, GameEventManager, WeaponTrace, MapUtil and lineintersect_utils
verbatim and drop their pending stand-ins; CGameEventManager and CPythonSystem
join PythonBoot in CPythonApplication member order.

Root cause of the intermittent Loading-phase header 7: TPlayerSkill::tNextRead
is time_t, 32-bit in 40250 (_USE_32BIT_TIME_T) but 64-bit on LP64, so
SKILL_LEVEL (76) was read as 2551 bytes instead of 1531. Packet.h now uses
LONG with a static_assert, and the fake server sends SKILL_LEVEL in Loading.

The fake server's CHARACTER_ADD now uses CHAR_TYPE_PC; port.login_flow
asserts the main instance exists with race 0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-23 19:02:21 +09:00
co-authored by Claude Opus 5.5
parent 996d793f0c
commit 5266b00c6e
71 changed files with 13832 additions and 1405 deletions
+324 -81
View File
@@ -5,247 +5,490 @@
"contracts": [],
"functions": {
"CActorInstance::INSTANCEBASE_Deform": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::INSTANCEBASE_Deform"
]
},
"CActorInstance::INSTANCEBASE_Transform": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::INSTANCEBASE_Transform"
]
},
"CActorInstance::OnUpdate": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::OnUpdate"
]
},
"CActorInstance::GetBackground": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::GetBackground"
]
},
"CActorInstance::SetMainInstance": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::SetMainInstance"
]
},
"CActorInstance::SetParalysis": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::SetParalysis"
]
},
"CActorInstance::SetFaint": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::SetFaint"
]
},
"CActorInstance::SetSleep": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::SetSleep"
]
},
"CActorInstance::SetResistFallen": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::SetResistFallen"
]
},
"CActorInstance::SetReachScale": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::SetReachScale"
]
},
"CActorInstance::__GetReachScale": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::__GetReachScale"
]
},
"CActorInstance::__GetAttackSpeed": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::__GetAttackSpeed"
]
},
"CActorInstance::__GetCurrentComboType": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::__GetCurrentComboType"
]
},
"CActorInstance::SetComboType": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::SetComboType"
]
},
"CActorInstance::SetAttackSpeed": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::SetAttackSpeed"
]
},
"CActorInstance::SetMoveSpeed": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::SetMoveSpeed"
]
},
"CActorInstance::SetFishingPosition": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::SetFishingPosition"
]
},
"CActorInstance::Move": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::Move"
]
},
"CActorInstance::Stop": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::Stop"
]
},
"CActorInstance::SetOwner": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::SetOwner"
]
},
"CActorInstance::SetActorType": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::SetActorType"
]
},
"CActorInstance::GetActorType": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::GetActorType"
]
},
"CActorInstance::IsHandMode": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsHandMode"
]
},
"CActorInstance::IsTwoHandMode": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsTwoHandMode"
]
},
"CActorInstance::IsBowMode": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsBowMode"
]
},
"CActorInstance::IsPoly": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsPoly"
]
},
"CActorInstance::IsPC": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsPC"
]
},
"CActorInstance::IsNPC": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsNPC"
]
},
"CActorInstance::IsEnemy": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsEnemy"
]
},
"CActorInstance::IsStone": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsStone"
]
},
"CActorInstance::IsWarp": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsWarp"
]
},
"CActorInstance::IsGoto": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsGoto"
]
},
"CActorInstance::IsBuilding": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsBuilding"
]
},
"CActorInstance::IsDoor": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsDoor"
]
},
"CActorInstance::IsObject": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsObject"
]
},
"CActorInstance::DestroySystem": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::DestroySystem"
]
},
"CActorInstance::DieEnd": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::DieEnd"
]
},
"CActorInstance::Die": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::Die"
]
},
"CActorInstance::IsSleep": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsSleep"
]
},
"CActorInstance::IsParalysis": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsParalysis"
]
},
"CActorInstance::IsFaint": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsFaint"
]
},
"CActorInstance::IsResistFallen": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsResistFallen"
]
},
"CActorInstance::IsMoving": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsMoving"
]
},
"CActorInstance::IsWaiting": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsWaiting"
]
},
"CActorInstance::IsDead": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsDead"
]
},
"CActorInstance::IsKnockDown": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsKnockDown"
]
},
"CActorInstance::IsDamage": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsDamage"
]
},
"CActorInstance::IsAttacked": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsAttacked"
]
},
"CActorInstance::PhysicsProcess": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::PhysicsProcess"
]
},
"CActorInstance::__AccumulationMovement": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::__AccumulationMovement"
]
},
"CActorInstance::AccumulationMovement": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::AccumulationMovement"
]
},
"CActorInstance::TransformProcess": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::TransformProcess"
]
},
"CActorInstance::OnUpdateCollisionData": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::OnUpdateCollisionData"
]
},
"CActorInstance::OnUpdateHeighInstance": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::OnUpdateHeighInstance"
]
},
"CActorInstance::OnGetObjectHeight": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::OnGetObjectHeight"
]
},
"CActorInstance::Revive": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::Revive"
]
},
"CActorInstance::IsStun": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsStun"
]
},
"CActorInstance::Stun": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::Stun"
]
},
"CActorInstance::SetWalkMode": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::SetWalkMode"
]
},
"CActorInstance::SetRunMode": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::SetRunMode"
]
},
"CActorInstance::GetNormalAttackIndex": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::GetNormalAttackIndex"
]
},
"CActorInstance::__InitializeMovement": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::__InitializeMovement"
]
},
"CActorInstance::AddMovement": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::AddMovement"
]
},
"CActorInstance::AdjustDynamicCollisionMovement": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::AdjustDynamicCollisionMovement"
]
},
"CActorInstance::__AdjustCollisionMovement": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::__AdjustCollisionMovement"
]
},
"CActorInstance::IsMovement": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IsMovement"
]
},
"CActorInstance::GetHeight": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::GetHeight"
]
},
"CActorInstance::IntersectDefendingSphere": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::IntersectDefendingSphere"
]
},
"CActorInstance::__IsMountingHorse": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::__IsMountingHorse"
]
},
"CActorInstance::MountHorse": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::MountHorse"
]
},
"CActorInstance::__CreateTree": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::__CreateTree"
]
},
"CActorInstance::__DestroyTree": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::__DestroyTree"
]
},
"CActorInstance::__SetTreePosition": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::__SetTreePosition"
]
},
"CActorInstance::ClearAttachingEffect": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::ClearAttachingEffect"
]
},
"CActorInstance::Destroy": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::Destroy"
]
},
"CActorInstance::__InitializeRotationData": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::__InitializeRotationData"
]
},
"CActorInstance::__InitializeStateData": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::__InitializeStateData"
]
},
"CActorInstance::__InitializeMotionData": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::__InitializeMotionData"
]
},
"CActorInstance::__Initialize": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::__Initialize"
]
},
"CActorInstance::CActorInstance": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::CActorInstance"
]
},
"CActorInstance::~CActorInstance": {
"status": "TODO"
"status": "PORTED",
"impl": [
"extension/src/port/GameLib/ActorInstance.cpp:CActorInstance::~CActorInstance"
]
}
}
}