public void parseQuestScriptWArgs(Vector script, List args)
	{
		if(args==null)
			args=new Vector();
		if(args.size()==0)
			parseQuestScript(script, args, -1);
		else
		{
			final Vector allArgs=new Vector();
			for(int i=0;i<args.size();i++)
			{
				final Object O=args.get(i);
				if(O instanceof List)
				{
					final List V=(List)O;
					if(allArgs.size()==0)
					{
						for(int v=0;v<V.size();v++)
							allArgs.addElement(new XVector(V.get(v)));
					}
					else
					{
						final List allArgsCopy=(List)allArgs.clone();
						allArgs.clear();
						for(int aa=0;aa<allArgsCopy.size();aa++)
						{
							final List argSet=(List)allArgsCopy.get(aa);
							for(int v=0;v<V.size();v++)
							{
								final List V2=new XVector(argSet);
								V2.add(V.get(v));
								allArgs.addElement(V2);
							}
						}
					}
				}
				else
				if(allArgs.size()==0)
					allArgs.addElement(new XVector(O));
				else
				for(int aa=0;aa<allArgs.size();aa++)
					((List)allArgs.elementAt(aa)).add(O);
			}
			for(int a=0;a<allArgs.size();a++)
				parseQuestScript(script, (List)allArgs.elementAt(a),-1);
		}
	}