[ SwitchonSub; if (ObjectIsUntouchable(noun)) return; if (noun hasnt switchable) return L__M(##SwitchOn,1,noun); if (noun has on) return L__M(##SwitchOn,2,noun); give noun on; if (AfterRoutines()==1) rtrue; if (keep_silent==1) rtrue; L__M(##SwitchOn,3,noun); ];