| 1 |
using System; |
| 2 |
using System.Collections.Generic; |
| 3 |
|
| 4 |
namespace Oni.Metadata |
| 5 |
{ |
| 6 |
internal class OniMacMetadata : 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.SepOffset, "DataOffset", "DataSize") |
| 15 |
); |
| 16 |
|
| 17 |
// |
| 18 |
// Texture Map template |
| 19 |
// |
| 20 |
|
| 21 |
private static MetaStruct txmp = new MetaStruct("TXMPInstance", |
| 22 |
new Field(MetaType.Padding(128)), |
| 23 |
new Field(MetaType.Enum<TXMPFlags>(), "Flags"), |
| 24 |
new Field(MetaType.Int16, "Width"), |
| 25 |
new Field(MetaType.Int16, "Height"), |
| 26 |
new Field(MetaType.Enum<TXMPFormat>(), "Format"), |
| 27 |
new Field(MetaType.Pointer(TemplateTag.TXAN), "Animation"), |
| 28 |
new Field(MetaType.Pointer(TemplateTag.TXMP), "EnvMap"), |
| 29 |
new Field(MetaType.Padding(4)), |
| 30 |
new BinaryPartField(MetaType.SepOffset, "DataOffset"), |
| 31 |
new Field(MetaType.Padding(8)) |
| 32 |
); |
| 33 |
|
| 34 |
// |
| 35 |
// Oni Sound Binary Data template |
| 36 |
// |
| 37 |
|
| 38 |
private static MetaStruct osbd = new MetaStruct("OSBDInstance", |
| 39 |
new Field(MetaType.Int32, "DataSize"), |
| 40 |
new BinaryPartField(MetaType.SepOffset, "DataOffset", "DataSize") |
| 41 |
); |
| 42 |
|
| 43 |
// |
| 44 |
// Sound Data template |
| 45 |
// |
| 46 |
|
| 47 |
private static MetaStruct sndd = new MetaStruct("SNDDInstance", |
| 48 |
new Field(MetaType.Int32, "Flags"), |
| 49 |
new Field(MetaType.Int32, "Duration"), |
| 50 |
new Field(MetaType.Int32, "DataSize"), |
| 51 |
new BinaryPartField(MetaType.RawOffset, "DataOffset", "DataSize") |
| 52 |
); |
| 53 |
|
| 54 |
protected override void InitializeTemplates(IList<Template> templates) |
| 55 |
{ |
| 56 |
base.InitializeTemplates(templates); |
| 57 |
|
| 58 |
templates.Add(new Template(TemplateTag.BINA, bina, 0x15e11, "Binary Data")); |
| 59 |
templates.Add(new Template(TemplateTag.OSBD, osbd, 0x15e3c, "Oni Sound Binary Data")); |
| 60 |
templates.Add(new Template(TemplateTag.TXMP, txmp, 0x8911eeb5f, "Texture Map")); |
| 61 |
templates.Add(new Template(TemplateTag.SNDD, sndd, 0x411eb, "Sound Data")); |
| 62 |
} |
| 63 |
} |
| 64 |
} |