@Override
	public void executeMsg(final Environmental myHost, final CMMsg msg)
	{
		super.executeMsg(myHost,msg);
		if((msg.amITarget(myHost))
		&&(msg.targetMinor()==CMMsg.TYP_SNIFF)
		&&(CMLib.flags().canSmell(msg.source()))
		&&(smells!=null))
		{
			final EmoteObj emote=smells.get(CMLib.dice().roll(1,smells.size(),-1));
			MOB emoter=null;
			if(myHost instanceof Room)
			{
				emoter=CMClass.getFactoryMOB();
				emoteHere((Room)myHost,emoter,emote,msg.source(),false);
				emoter.destroy();
				return;
			}
			final Room room=getBehaversRoom(myHost);
			if(room!=null)
			{
				if(myHost instanceof MOB)
				{
					emoter=(MOB)myHost;
					emoteHere(room,emoter,emote,null,true);
				}
				else
				{
					if((myHost instanceof Item)
					&&(!CMLib.flags().isInTheGame((Item)myHost,false)))
						return;
					emoter=CMClass.getFactoryMOB();
					emoter.setName(myHost.name());
					emoteHere(room,emoter,emote,null,true);
					emoter.destroy();
				}
			}
		}
	}