+ sfx_t *sfx;
+
+ sfx = S_FindName (name);
+
+ // Set the "used" flag for this sound
+ if (sfx != NULL)
+ sfx->flags |= SFXFLAG_USED;
+}
+
+
+/*
+==================
+S_ClearUsed
+
+Reset the "used" flag of all precached sounds
+==================
+*/
+void S_ClearUsed (void)
+{
+ int i;
+
+ for (i = 0; i < num_sfx; i++)
+ known_sfx[i].flags &= ~SFXFLAG_USED;
+}
+
+
+/*
+==================
+S_PurgeUnused
+
+Free all precached sounds without the "used" flag
+==================
+*/
+void S_PurgeUnused (void)
+{
+ int i;
+ sfx_t *sfx;
+
+ for (i = 0; i < num_sfx; i++)
+ {
+ sfx = &known_sfx[i];
+ if (! (sfx->flags & SFXFLAG_USED))
+ S_UnloadSound (sfx);
+ }