private static void WriteMP3(WZAudioProperty node, BinaryWriter bw) { byte[] m = node.Value; bw.Write(m); node.Dispose(); m = null; }
public uint AddMP3(WZAudioProperty node) { uint ret = (uint)MP3s.Count; MP3s.Add(node); return(ret); }
public uint AddMP3(WZAudioProperty node) { uint ret = (uint) MP3s.Count; MP3s.Add(node); return ret; }
private static void WriteNode(WZObject node, DumpState ds, BinaryWriter bw, uint nextChildID) { ds.AddNode(node); bw.Write(ds.AddString(node.Name)); bw.Write(nextChildID); bw.Write((ushort)node.ChildCount); ushort type; if (node is WZDirectory || node is WZImage || node is WZSubProperty || node is WZConvexProperty || node is WZNullProperty) { type = 0; // no data; children only (8) } else if (node is WZInt32Property || node is WZUInt16Property || node is WZInt64Property) { type = 1; // int32 (4) } else if (node is WZSingleProperty || node is WZDoubleProperty) { type = 2; // Double (0) } else if (node is WZStringProperty) { type = 3; // String (4) } else if (node is WZPointProperty) { type = 4; // (0) } else if (node is WZCanvasProperty) { type = 5; // (4) } else if (node is WZAudioProperty) { type = 6; // (4) } else { throw new InvalidOperationException("Unhandled WZ node type [1]"); } bw.Write(type); if (node is WZInt32Property) { bw.Write((long)((WZInt32Property)node).Value); } else if (node is WZUInt16Property) { bw.Write((long)((WZUInt16Property)node).Value); } else if (node is WZInt64Property) { bw.Write(((WZInt64Property)node).Value); } else if (node is WZSingleProperty) { bw.Write((double)((WZSingleProperty)node).Value); } else if (node is WZDoubleProperty) { bw.Write(((WZDoubleProperty)node).Value); } else if (node is WZStringProperty) { bw.Write(ds.AddString(((WZStringProperty)node).Value)); } else if (node is WZPointProperty) { Point pNode = ((WZPointProperty)node).Value; bw.Write(pNode.X); bw.Write(pNode.Y); } else if (node is WZCanvasProperty) { WZCanvasProperty wzcp = (WZCanvasProperty)node; bw.Write(ds.AddCanvas(wzcp)); if (dumpImg) { bw.Write((ushort)wzcp.Value.Width); bw.Write((ushort)wzcp.Value.Height); wzcp.Dispose(); } else { bw.Write(0); } } else if (node is WZAudioProperty) { WZAudioProperty wzmp = (WZAudioProperty)node; bw.Write(ds.AddMP3(wzmp)); if (dumpSnd) { bw.Write((uint)wzmp.Value.Length); wzmp.Dispose(); } else { bw.Write(0); } } switch (type) { case 0: bw.Write(0L); break; case 3: bw.Write(0); break; } }