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