diff --git a/Src/Client/ServerSession.cpp b/Src/Client/ServerSession.cpp index 1d2df59..d0becc9 100644 --- a/Src/Client/ServerSession.cpp +++ b/Src/Client/ServerSession.cpp @@ -703,20 +703,38 @@ void ServerSession::update(GlobalTime gTime, float dTime) { for(auto& [resId, def] : profile_Voxel_AddOrChange) Profiles.DefVoxels[resId] = def; + for(ResourceId resId : profile_Voxel_Lost) + Profiles.DefVoxels[resId] = DefVoxel(); + for(auto& [resId, def] : profile_Node_AddOrChange) Profiles.DefNodes[resId] = def; + for(ResourceId resId : profile_Node_Lost) + Profiles.DefNodes[resId] = DefNode(); + for(auto& [resId, def] : profile_World_AddOrChange) Profiles.DefWorlds[resId] = def; + for(ResourceId resId : profile_World_Lost) + Profiles.DefWorlds[resId] = DefWorld(); + for(auto& [resId, def] : profile_Portal_AddOrChange) Profiles.DefPortals[resId] = def; + + for(ResourceId resId : profile_Portal_Lost) + Profiles.DefPortals[resId] = DefPortal(); for(auto& [resId, def] : profile_Entity_AddOrChange) Profiles.DefEntitys[resId] = def; + for(ResourceId resId : profile_Entity_Lost) + Profiles.DefEntitys[resId] = DefEntity(); + for(auto& [resId, def] : profile_Item_AddOrChange) Profiles.DefItems[resId] = def; + + for(ResourceId resId : profile_Item_Lost) + Profiles.DefItems[resId] = DefItem(); } // Чанки diff --git a/Src/Client/ServerSession.hpp b/Src/Client/ServerSession.hpp index 8ea44e5..831eaf0 100644 --- a/Src/Client/ServerSession.hpp +++ b/Src/Client/ServerSession.hpp @@ -119,6 +119,7 @@ private: std::vector BindsDK; // Полученные изменения привязок Hash+Header std::vector BindsHH; + // Потерянные привязываются к hash_t(0) // Полученные с сервера ресурсы std::vector> ReceivedAssets;