[ DropSub; if (noun == player) return L__M(##PutOn, 4); if (noun in parent(player)) return L__M(##Drop,1,noun); if (noun notin player) return L__M(##Drop,2,noun); if (noun has worn) { L__M(##Drop,3,noun); ; if (noun has worn && noun in player) rtrue; } move noun to parent(player); if (AfterRoutines()==1) rtrue; if (keep_silent==1) rtrue; return L__M(##Drop,4,noun); ];