void Gwen::Anim::Think() { Gwen::Anim::Animation::List::iterator it = g_Animations.begin(); if ( it != g_Animations.end() ) { Gwen::Anim::Animation::ChildList::iterator itChild; Gwen::Anim::Animation* anim; do { if ( ( itChild = it->second.begin() ) != it->second.end() ) { do { anim = *itChild; anim->Think(); if ( anim->Finished() ) { itChild = it->second.erase( itChild ); delete anim; } else { ++itChild; } } while ( itChild != it->second.end() ); } } while ( ++it != g_Animations.end() ); } }