[ AllowPushDir i; if (parent(second)~=compass) return L__M(##PushDir,2,noun); if (second==u_obj or d_obj) return L__M(##PushDir,3,noun); AfterRoutines(); i=noun; move i to player; ; if (location==thedark) move i to real_location; else move i to location; ];