added a SFX::hold interface so outside code can make some one-shot effects without actually memorize all of them