void CPhysicsShellHolder::PHLoadState(IReader &P) { // Flags8 lflags; CKinematics* K=smart_cast<CKinematics*>(Visual()); // P.r_u8 (lflags.flags); if(K) { K->LL_SetBonesVisible(P.r_u64()); K->LL_SetBoneRoot(P.r_u16()); } Fvector min=P.r_vec3(); Fvector max=P.r_vec3(); VERIFY(!min.similar(max)); u16 bones_number=P.r_u16(); R_ASSERT3(bones_number <= 64, "CPhysicsShellHolder::PHLoadState", cNameVisual().c_str()); for(u16 i=0;i<bones_number;i++) { SPHNetState state; state.net_Load(P,min,max); PHGetSyncItem(i)->set_State(state); } }
void SPHBonesData::net_Load(NET_Packet &P) { bones.clear (); bones_mask =P.r_u64(); root_bone =P.r_u16(); Fvector _mn, _mx; P.r_vec3 (_mn); P.r_vec3 (_mx); set_min_max (_mn, _mx); u16 bones_number =P.r_u16();//bones number /**/ for(int i=0;i<bones_number;i++) { SPHNetState S; S.net_Load(P,get_min(),get_max()); bones.push_back(S); } }
void CPHSkeleton::LoadNetState(NET_Packet& P) { CPhysicsShellHolder* obj=PPhysicsShellHolder(); IKinematics* K=smart_cast<IKinematics*>(obj->Visual()); P.r_u8 (m_flags.flags); if(K) { K->LL_SetBonesVisible(P.r_u64()); K->LL_SetBoneRoot(P.r_u16()); } u16 bones_number=P.r_u16(); for(u16 i=0;i<bones_number;i++) { SPHNetState state; state.net_Load(P); obj->PHGetSyncItem(i)->set_State(state); } }