public void WriteXML(XElement ele, ElderScrollsPlugin master) { XElement subEle; ele.TryPathTo("Type", true, out subEle); subEle.Value = Type.ToString(); ele.TryPathTo(Arg1Label, true, out subEle); if (Arg1Type == null) { subEle.Value = ((byte[])Argument1).ToHex(); } else if (Arg1Type == typeof(FormID)) { Argument1.WriteXML(subEle, master); } else if (Arg1Type.IsEnum) { subEle.Value = Argument1.ToString(); } else { throw new ArgumentException(Arg1Type.ToString() + " is not handled."); } ele.TryPathTo(Arg2Label, true, out subEle); if (Arg2Type == null) { subEle.Value = ((byte[])Argument2).ToHex(); } else if (Arg2Type == typeof(FormID)) { Argument2.WriteXML(subEle, master); } else if (Arg2Type.IsEnum) { subEle.Value = Argument2.ToString(); } else if (Arg2Type == typeof(uint)) { subEle.Value = Argument2.ToString(); } else { throw new ArgumentException(Arg2Type.ToString() + " is not handled."); } }
/// <summary> /// Formats the instruction as string. /// <example> /// ADD (x), x, 2 /// </example> /// </summary> /// <returns>A string representing the instruction</returns> public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append(Mnemonic); sb.Append(' '); sb.Append(Argument1.ToString()); if (Argument2.Type != ArgumentType.None) { sb.Append(", "); sb.Append(Argument2.ToString()); } if (Argument3.Type != ArgumentType.None) { sb.Append(", "); sb.Append(Argument3.ToString()); } return(sb.ToString()); }