public static String packOptionsToString(Hashtable<String, GameOption> ohash, boolean hideEmptyStringOpts)
	throws ClassCastException
    {
	if ((ohash == null) || ohash.size() == 0)
	    return "-";

	StringBuffer sb = new StringBuffer();
	boolean hadAny = false;
	for (Enumeration<String> e = ohash.keys(); e.hasMoreElements(); )
	{
	    GameOption op = ohash.get(e.nextElement());
	    if (op.optType == OTYPE_UNKNOWN)
		continue;  // <-- Skip this one --
	    if (hideEmptyStringOpts
	        && ((op.optType == OTYPE_STR) || (op.optType == OTYPE_STRHIDE))  // OTYPE_* - add here if string-valued
	        && op.getStringValue().length() == 0)
                continue;  // <-- Skip this one --       

	    if (hadAny)
		sb.append(Message.sep2_char);
	    else
		hadAny = true;
	    sb.append(op.optKey);
	    sb.append('=');
            op.packValue(sb);
	}
	return sb.toString();
    }