public Parameter ReadItem() { string key; if (PreSix) { key = ReadFourByteString(); } else { key = ReadTokenOrString(); } string type = ReadFourByteString(); DebugOutput.Dump("key: {0} ({1})", key, type); Parameter parameter = null; switch (type) { case "alis": parameter = new AliasParameter(); break; case "UntF": parameter = new DoubleParameter(true); break; case "bool": parameter = new BoolParameter(); break; case "doub": parameter = new DoubleParameter(false); break; case "enum": parameter = new EnumParameter(); break; case "obj": parameter = new ReferenceParameter(); break; case "VlLs": parameter = new ListParameter(); break; case "long": parameter = new LongParameter(); break; case "Pth": parameter = new PathParameter(); break; case "TEXT": parameter = new TextParameter(); break; case "ObAr": parameter = new ObArParameter(); break; case "Objc": parameter = new ObjcParameter(); break; case "tdta": parameter = new RawDataParameter(); break; case "type": parameter = new TypeParameter(); break; default: Console.WriteLine("ReadItem: type {0} unknown!", type); throw new GimpSharpException(); } DebugOutput.Level++; parameter.Parse(this); DebugOutput.Level--; parameter.Name = key; return parameter; }
public Parameter ReadItem() { string key; if (PreSix) { key = ReadFourByteString(); } else { key = ReadTokenOrString(); } string type = ReadFourByteString(); DebugOutput.Dump($"key: {key} ({type})"); Parameter parameter = null; switch (type) { case "alis": parameter = new AliasParameter(); break; case "UntF": parameter = new DoubleParameter(true); break; case "bool": parameter = new BoolParameter(); break; case "doub": parameter = new DoubleParameter(false); break; case "enum": parameter = new EnumParameter(); break; case "obj": parameter = new ReferenceParameter(); break; case "VlLs": parameter = new ListParameter(); break; case "long": parameter = new LongParameter(); break; case "Pth": parameter = new PathParameter(); break; case "TEXT": parameter = new TextParameter(); break; case "ObAr": parameter = new ObArParameter(); break; case "Objc": parameter = new ObjcParameter(); break; case "tdta": parameter = new RawDataParameter(); break; case "type": parameter = new TypeParameter(); break; default: Console.WriteLine("ReadItem: type {0} unknown!", type); throw new GimpSharpException(); } DebugOutput.Level++; parameter.Parse(this); DebugOutput.Level--; parameter.Name = key; return(parameter); }