UpdateSystemThread::UpdateSystemThread(Allocator& allocator, ECSModule* ecs, UpdateSystem_Impl& impl) : USAPIObject(CLASS_TYPE(), &impl), context(allocator), thisIsKilled(false), impl(&impl) { impl.rcu.sync(context.rcu); // We don't intend to use the standard API deletion procedure; so we'll // just make the referenceCount never fall to 0. referenceCount.increment(1); }
/////////////////////////////////////////////////////////////////////////////// // CopyProps /////////////////////////////////////////////////////////////////////////////// void cFSPropSet::CopyProps(const iFCOPropSet* pSrc, const cFCOPropVector& propsToCopy) { ASSERT(pSrc->GetType() == CLASS_TYPE(cFSPropSet)); // first, modify my valid vector... mValidProps |= propsToCopy; for(int i=0; i < GetNumFSProps(); i++) { if(propsToCopy.ContainsItem(i)) { ASSERT( pSrc->GetValidVector().ContainsItem( i ) ); const iFCOProp* pProp = pSrc->GetPropAt(i); if (pProp->GetType() != cFCOUndefinedProp::GetInstance()->GetType()) { GetPropAt(i)->Copy( pProp ); mUndefinedProps.RemoveItem(i); } else mUndefinedProps.AddItem(i); } } }
UpdateSystem::UpdateSystem(Allocator& systemAllocator, Allocator& dynamicAllocator) : System(SYSTEM_TYPE(), CLASS_TYPE(), systemAllocator) { impl = FD_NEW(UpdateSystem_Impl, systemAllocator)(*this, NULL, dynamicAllocator); }