bool SFXRangeModifier::update() { if( !isActive() ) { SFXStatus status = mSource->getStatus(); if( ( status == SFXStatusPlaying || status == SFXStatusBlocked ) && mSource->getElapsedPlayTimeCurrentCycle() >= mStartTime ) { mIsActive = true; _onStart(); } } if( isActive() ) _onUpdate(); if( isActive() ) { SFXStatus status = mSource->getStatus(); if( ( status == SFXStatusPlaying || status == SFXStatusBlocked ) && mSource->getElapsedPlayTimeCurrentCycle() > mEndTime ) { _onEnd(); mIsActive = false; return mRemoveWhenDone; } } return true; }
void Manip::onEnd(const Point& pt, bool canceled) { _onEnd(pt, canceled); mDragStarted = false; }