mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-03-20 21:00:52 +00:00
Test PR of lazy load of ghosts and scene streaming
For now scene streaming only affects how subscenes are loaded. If you try it on everything in a scene expect issues as the namespaces are not linked up at that point. This is a TEST! Do not merge! If you do you will open up a gate to an alternate reality where all that you believe will cease to exist in an endless void of darkness.
This commit is contained in:
parent
23e30e801f
commit
eecc2bdaee
17 changed files with 298 additions and 37 deletions
|
|
@ -575,6 +575,64 @@ void GameBase::readPacketData(GameConnection*, BitStream*)
|
|||
{
|
||||
}
|
||||
|
||||
U32 GameBase::partialPackUpdate(NetConnection* conn, U32 mask, BitStream* stream)
|
||||
{
|
||||
U32 retMask = Parent::partialPackUpdate(conn, mask, stream);
|
||||
|
||||
if (stream->writeFlag(mask & ScaleMask))
|
||||
{
|
||||
// Only write one bit if the scale is one.
|
||||
if (stream->writeFlag(mObjScale != Point3F::One))
|
||||
mathWrite(*stream, mObjScale);
|
||||
|
||||
retMask &= ~ScaleMask;
|
||||
}
|
||||
|
||||
if (stream->writeFlag((mask & DataBlockMask) && mDataBlock != NULL))
|
||||
{
|
||||
stream->writeRangedU32(mDataBlock->getId(),
|
||||
DataBlockObjectIdFirst,
|
||||
DataBlockObjectIdLast);
|
||||
if (stream->writeFlag(mNetFlags.test(NetOrdered)))
|
||||
stream->writeInt(mOrderGUID, 16);
|
||||
|
||||
retMask &= ~DataBlockMask;
|
||||
}
|
||||
|
||||
return retMask;
|
||||
}
|
||||
|
||||
void GameBase::partialUnpackUpdate(NetConnection* conn, BitStream* stream)
|
||||
{
|
||||
Parent::partialUnpackUpdate(conn, stream);
|
||||
|
||||
// ScaleMask
|
||||
if (stream->readFlag())
|
||||
{
|
||||
if (stream->readFlag())
|
||||
{
|
||||
VectorF scale;
|
||||
mathRead(*stream, &scale);
|
||||
setScale(scale);
|
||||
}
|
||||
else
|
||||
setScale(Point3F::One);
|
||||
}
|
||||
|
||||
// DataBlockMask
|
||||
if (stream->readFlag())
|
||||
{
|
||||
GameBaseData* dptr = 0;
|
||||
SimObjectId id = stream->readRangedU32(DataBlockObjectIdFirst,
|
||||
DataBlockObjectIdLast);
|
||||
if (stream->readFlag())
|
||||
mOrderGUID = stream->readInt(16);
|
||||
|
||||
if (!Sim::findObject(id, dptr) || !setDataBlock(dptr))
|
||||
conn->setLastError("Invalid packet GameBase::unpackUpdate()");
|
||||
}
|
||||
}
|
||||
|
||||
U32 GameBase::packUpdate( NetConnection *connection, U32 mask, BitStream *stream )
|
||||
{
|
||||
U32 retMask = Parent::packUpdate( connection, mask, stream );
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue