MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / detachObject

Method detachObject

Engine/source/sim/netGhost.cpp:676–710  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

674}
675
676void NetConnection::detachObject(GhostInfo *info)
677{
678 // mark it for ghost killin'
679 info->flags |= GhostInfo::KillGhost;
680
681 // if the mask is in the zero range, we've got to move it up...
682 if(!info->updateMask)
683 {
684 info->updateMask = 0xFFFFFFFF;
685 ghostPushNonZero(info);
686 }
687 if(info->obj)
688 {
689 if(info->prevObjectRef)
690 info->prevObjectRef->nextObjectRef = info->nextObjectRef;
691 else
692 info->obj->mFirstObjectRef = info->nextObjectRef;
693 if(info->nextObjectRef)
694 info->nextObjectRef->prevObjectRef = info->prevObjectRef;
695
696 // remove it from the lookup table
697 U32 id = info->obj->getId();
698 for(GhostInfo **walk = &mGhostLookupTable[id & (GhostLookupTableSize - 1)]; *walk; walk = &((*walk)->nextLookupInfo))
699 {
700 GhostInfo *temp = *walk;
701 if(temp == info)
702 {
703 *walk = temp->nextLookupInfo;
704 break;
705 }
706 }
707 info->prevObjectRef = info->nextObjectRef = NULL;
708 info->obj = NULL;
709 }
710}
711
712void NetConnection::freeGhostInfo(GhostInfo *ghost)
713{

Callers 2

clearScopeAlwaysMethod · 0.45
onRemoveMethod · 0.45

Calls 1

getIdMethod · 0.65

Tested by

no test coverage detected