ActionEvent ReadActionEvent() { byte expanded = ReadByte(); byte enabled = ReadByte(); byte withDialog = ReadByte(); byte dialogOptions = ReadByte(); try { string text = ReadFourByteString(); string eventName; if (text == "TEXT") { eventName = ReadString(); } else if (text == "long") { eventName = ReadFourByteString(); } else { Console.WriteLine("Unknown text: " + text); return(null); } var actionEvent = _map.Lookup(eventName); // actionEvent.EventForDisplay = ReadString(); string tmp = ReadString(); actionEvent.EventForDisplay = Abbreviations.GetUppercased(eventName); DebugOutput.Dump("EventName: " + eventName); actionEvent.HasDescriptor = (ReadInt32() != 0); if (!actionEvent.HasDescriptor) { DebugOutput.Dump("HasDescriptor: " + actionEvent.HasDescriptor); actionEvent.IsEnabled = (enabled == 0) ? false : true; return(actionEvent); } if (PreSix == false) { string classID = ReadUnicodeString(); DebugOutput.Dump("ClassID: " + classID); string classID2 = ReadTokenOrString(); DebugOutput.Dump("ClassID2: " + classID2); } actionEvent.NumberOfItems = ReadInt32(); DebugOutput.Dump("NumberOfItems: " + actionEvent.NumberOfItems); actionEvent = actionEvent.Parse(this); actionEvent.IsEnabled = (enabled == 0) ? false : true; return(actionEvent); } catch (GimpSharpException e) { Console.WriteLine("-------------> Parsing failed"); return(null); } }
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 override void Parse(ActionParser parser) { if (parser.PreSix) { _classID2 = parser.ReadTokenOrString(); DebugOutput.Dump("ClassID2: " + _classID2); int numberOfItems = parser.ReadInt32(); DebugOutput.Dump("NumberOfItems: " + numberOfItems); } else { int numberOfItems = parser.ReadInt32(); DebugOutput.Dump("NumberOfItems: " + numberOfItems); _classID = parser.ReadUnicodeString(); DebugOutput.Dump("ClassID: " + _classID); _classID2 = parser.ReadTokenOrString(); DebugOutput.Dump("ClassID2: " + _classID2); } int numberOfFields = parser.ReadInt32(); DebugOutput.Dump("NumberOfFields: " + numberOfFields); for (int i = 0; i < numberOfFields; i++) { string key = parser.ReadTokenOrString(); string type = parser.ReadFourByteString(); _units = parser.ReadFourByteString(); DebugOutput.Dump("key: {0} ({1}) {2}", key, type, _units); int numberOfItems = parser.ReadInt32(); DebugOutput.Dump("NumberOfItems2: " + numberOfItems); switch (type) { case "UnFl": for (int j = 0; j < numberOfItems; j++) { double val = parser.ReadDouble(); Coordinate <double> c; if (i == 0) { c = new Coordinate <double>(); _value.Add(c); c.X = val; } else { _value[j].Y = val; } } break; default: Console.WriteLine("ObAr:Unknown type: " + type); break; } } }