network reductons

first pass, tsstatic
sceneobject under review
This commit is contained in:
AzaezelX 2025-10-22 23:35:35 -05:00
parent 5d260bc58f
commit 4579f327b4

View file

@ -942,8 +942,9 @@ U32 TSStatic::packUpdate(NetConnection* con, U32 mask, BitStream* stream)
if (stream->writeFlag(mask & UpdateCollisionMask)) if (stream->writeFlag(mask & UpdateCollisionMask))
{ {
stream->write(mCollisionLOD); if (stream->writeFlag(mCollisionLOD>0))
stream->write((U32)mCollisionType); stream->writeInt(mCollisionLOD,12);
stream->writeInt(mCollisionType,4);
} }
if (stream->writeFlag(mask & SkinMask)) if (stream->writeFlag(mask & SkinMask))
con->packNetStringHandleU(stream, mSkinNameHandle); con->packNetStringHandleU(stream, mSkinNameHandle);
@ -952,7 +953,7 @@ U32 TSStatic::packUpdate(NetConnection* con, U32 mask, BitStream* stream)
{ {
PACK_ASSET_REFACTOR(con, Shape); PACK_ASSET_REFACTOR(con, Shape);
stream->write((U32)mDecalType); stream->writeInt(mDecalType,4);
stream->writeFlag(mAllowPlayerStep); stream->writeFlag(mAllowPlayerStep);
stream->writeFlag(mMeshCulling); stream->writeFlag(mMeshCulling);
@ -998,17 +999,18 @@ U32 TSStatic::packUpdate(NetConnection* con, U32 mask, BitStream* stream)
if (stream->writeFlag(mask & MaterialMask)) if (stream->writeFlag(mask & MaterialMask))
{ {
stream->writeInt(mChangingMaterials.size(), 16); if (stream->writeFlag(mChangingMaterials.size() > 0))
for (U32 i = 0; i < mChangingMaterials.size(); i++)
{ {
stream->writeInt(mChangingMaterials[i].slot, 16); stream->writeInt(mChangingMaterials.size(), 16);
NetStringHandle matNameStr = mChangingMaterials[i].assetId.c_str(); for (U32 i = 0; i < mChangingMaterials.size(); i++)
con->packNetStringHandleU(stream, matNameStr); {
stream->writeInt(mChangingMaterials[i].slot, 16);
NetStringHandle matNameStr = mChangingMaterials[i].assetId.c_str();
con->packNetStringHandleU(stream, matNameStr);
}
} }
//mChangingMaterials.clear();
} }
return retMask; return retMask;
@ -1042,8 +1044,9 @@ void TSStatic::unpackUpdate(NetConnection* con, BitStream* stream)
{ {
U32 collisionType = CollisionMesh; U32 collisionType = CollisionMesh;
stream->read(&mCollisionLOD); if (stream->readFlag())
stream->read(&collisionType); mCollisionLOD = stream->readInt(12);
collisionType = stream->readInt(4);
// Handle it if we have changed CollisionType's // Handle it if we have changed CollisionType's
if ((MeshType)collisionType != mCollisionType) if ((MeshType)collisionType != mCollisionType)
@ -1069,7 +1072,7 @@ void TSStatic::unpackUpdate(NetConnection* con, BitStream* stream)
{ {
UNPACK_ASSET_REFACTOR(con, Shape); UNPACK_ASSET_REFACTOR(con, Shape);
stream->read((U32*)&mDecalType); mDecalType = (MeshType)stream->readInt(4);
mAllowPlayerStep = stream->readFlag(); mAllowPlayerStep = stream->readFlag();
mMeshCulling = stream->readFlag(); mMeshCulling = stream->readFlag();
@ -1124,20 +1127,22 @@ void TSStatic::unpackUpdate(NetConnection* con, BitStream* stream)
if (stream->readFlag()) if (stream->readFlag())
{ {
mChangingMaterials.clear(); mChangingMaterials.clear();
U32 materialCount = stream->readInt(16); if (stream->readFlag())
for (U32 i = 0; i < materialCount; i++)
{ {
matMap newMatMap; U32 materialCount = stream->readInt(16);
newMatMap.slot = stream->readInt(16);
newMatMap.assetId = String(con->unpackNetStringHandleU(stream).getString());
//do the lookup, now for (U32 i = 0; i < materialCount; i++)
newMatMap.matAsset = AssetDatabase.acquireAsset<MaterialAsset>(newMatMap.assetId); {
matMap newMatMap;
newMatMap.slot = stream->readInt(16);
newMatMap.assetId = String(con->unpackNetStringHandleU(stream).getString());
mChangingMaterials.push_back(newMatMap); //do the lookup, now
newMatMap.matAsset = AssetDatabase.acquireAsset<MaterialAsset>(newMatMap.assetId);
mChangingMaterials.push_back(newMatMap);
}
} }
updateMaterials(); updateMaterials();
} }