[1114] | 1 | using System;
|
---|
| 2 | using System.Collections.Generic;
|
---|
| 3 |
|
---|
| 4 | namespace Oni.Metadata
|
---|
| 5 | {
|
---|
| 6 | internal class OniPcMetadata : InstanceMetadata
|
---|
| 7 | {
|
---|
| 8 | //
|
---|
| 9 | // Binary Data template
|
---|
| 10 | //
|
---|
| 11 |
|
---|
| 12 | private static MetaStruct bina = new MetaStruct("BINAInstance",
|
---|
| 13 | new Field(MetaType.Int32, "DataSize"),
|
---|
| 14 | new BinaryPartField(MetaType.RawOffset, "DataOffset", "DataSize")
|
---|
| 15 | );
|
---|
| 16 |
|
---|
| 17 | //
|
---|
| 18 | // Oni Sound Binary Data template
|
---|
| 19 | //
|
---|
| 20 |
|
---|
| 21 | private static MetaStruct osbd = new MetaStruct("OSBDInstance",
|
---|
| 22 | new Field(MetaType.Int32, "DataSize"),
|
---|
| 23 | new BinaryPartField(MetaType.RawOffset, "DataOffset", "DataSize")
|
---|
| 24 | );
|
---|
| 25 |
|
---|
| 26 | //
|
---|
| 27 | // Texture Map template
|
---|
| 28 | //
|
---|
| 29 |
|
---|
| 30 | private static MetaStruct txmp = new MetaStruct("TXMPInstance",
|
---|
| 31 | new Field(MetaType.Padding(128)),
|
---|
| 32 | new Field(MetaType.Enum<TXMPFlags>(), "Flags"),
|
---|
| 33 | new Field(MetaType.UInt16, "Width"),
|
---|
| 34 | new Field(MetaType.UInt16, "Height"),
|
---|
| 35 | new Field(MetaType.Enum<TXMPFormat>(), "Format"),
|
---|
| 36 | new Field(MetaType.Pointer(TemplateTag.TXAN), "Animation"),
|
---|
| 37 | new Field(MetaType.Pointer(TemplateTag.TXMP), "EnvMap"),
|
---|
| 38 | new BinaryPartField(MetaType.RawOffset, "DataOffset"),
|
---|
| 39 | new Field(MetaType.Padding(12))
|
---|
| 40 | );
|
---|
| 41 |
|
---|
| 42 | //
|
---|
| 43 | // Sound Data template
|
---|
| 44 | //
|
---|
| 45 |
|
---|
| 46 | private static MetaStruct sndd = new MetaStruct("SNDDInstance",
|
---|
| 47 | new Field(MetaType.Int32, "WaveHeaderSize"),
|
---|
| 48 |
|
---|
| 49 | new Field(MetaType.Int16, "Format"),
|
---|
| 50 | new Field(MetaType.Int16, "ChannelCount"),
|
---|
| 51 | new Field(MetaType.Int32, "SamplesPerSecond"),
|
---|
| 52 | new Field(MetaType.Int32, "BytesPerSecond"),
|
---|
| 53 | new Field(MetaType.Int16, "BlockAlignment"),
|
---|
| 54 | new Field(MetaType.Int16, "BitsPerSample"),
|
---|
| 55 | new Field(MetaType.Int16, "AdpcmHeaderSize"),
|
---|
| 56 |
|
---|
| 57 | new Field(MetaType.Int16, "SamplesPerBlock"),
|
---|
| 58 | new Field(MetaType.Int16, "CoefficientCount"),
|
---|
| 59 | new Field(MetaType.Array(7, new MetaStruct("ADPCMCoefficient",
|
---|
| 60 | new Field(MetaType.Int16, "Coefficient1"),
|
---|
| 61 | new Field(MetaType.Int16, "Coefficient2")
|
---|
| 62 | )), "Coefficients"),
|
---|
| 63 |
|
---|
| 64 | new Field(MetaType.Int16, "Duration"),
|
---|
| 65 | new Field(MetaType.Int32, "DataSize"),
|
---|
| 66 | new BinaryPartField(MetaType.RawOffset, "DataOffset", "DataSize")
|
---|
| 67 | );
|
---|
| 68 |
|
---|
| 69 | protected override void InitializeTemplates(IList<Template> templates)
|
---|
| 70 | {
|
---|
| 71 | base.InitializeTemplates(templates);
|
---|
| 72 |
|
---|
| 73 | templates.Add(new Template(TemplateTag.BINA, bina, 0xdb41, "Binary Data"));
|
---|
| 74 | templates.Add(new Template(TemplateTag.OSBD, osbd, 0xdb6c, "Oni Sound Binary Data"));
|
---|
| 75 | templates.Add(new Template(TemplateTag.TXMP, txmp, 0x891187581, "Texture Map"));
|
---|
| 76 | templates.Add(new Template(TemplateTag.SNDD, sndd, 0x370578, "Sound Data"));
|
---|
| 77 | }
|
---|
| 78 | }
|
---|
| 79 | }
|
---|