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 |
} |