예제 #1
0
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);
}
예제 #2
0
///////////////////////////////////////////////////////////////////////////////
// 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);
        }
    }
}
예제 #3
0
UpdateSystem::UpdateSystem(Allocator& systemAllocator, 
	Allocator& dynamicAllocator) : System(SYSTEM_TYPE(), CLASS_TYPE(),
		systemAllocator) {
	impl = FD_NEW(UpdateSystem_Impl, systemAllocator)(*this, NULL,
			dynamicAllocator);
}