//----------------------------------------------------------------// MOAINodeMgr::~MOAINodeMgr () { MOAINode* cursor = this->mUpdateListHead; while ( cursor ) { MOAINode* node = cursor; cursor = cursor->mNext; node->mState = MOAINode::STATE_IDLE; node->Release (); } }
//----------------------------------------------------------------// void MOAINodeMgr::Remove ( MOAINode& node ) { if ( node.mNext ) { node.mNext->mPrev = node.mPrev; } else { this->mUpdateListTail = node.mPrev; } if ( node.mPrev ) { node.mPrev->mNext = node.mNext; } else { this->mUpdateListHead = node.mNext; } node.Release (); }
//----------------------------------------------------------------// void MOAINodeMgr::Update () { MOAINode* node = this->mUpdateListHead; for ( ; node ; node = node->mNext ) { node->DepNodeUpdate (); } // TODO: fix this up later node = this->mUpdateListHead; while ( node ) { MOAINode* temp = node; node = node->mNext; temp->mState = MOAINode::STATE_IDLE; temp->Release (); } this->mUpdateListHead = 0; this->mUpdateListTail = 0; }