From f2819b35f6502627cc6ef7ba3d7a07389c9a2e4d Mon Sep 17 00:00:00 2001 From: Monkeypolice188 Date: Wed, 8 Dec 2021 15:15:44 +0000 Subject: [PATCH] Audio updates --- .../GameFiles/FileTypes/RelFile.cs | 405 ++++++++++-------- .../Panels/EditAudioEmitterPanel.Designer.cs | 84 ++-- .../Project/Panels/EditAudioEmitterPanel.cs | 56 +-- CodeWalker/Project/ProjectForm.cs | 6 +- 4 files changed, 253 insertions(+), 298 deletions(-) diff --git a/CodeWalker.Core/GameFiles/FileTypes/RelFile.cs b/CodeWalker.Core/GameFiles/FileTypes/RelFile.cs index cd376e9..6bf319f 100644 --- a/CodeWalker.Core/GameFiles/FileTypes/RelFile.cs +++ b/CodeWalker.Core/GameFiles/FileTypes/RelFile.cs @@ -4449,7 +4449,7 @@ namespace CodeWalker.GameFiles } [TC(typeof(EXP))] public class Dat54AutomationSound : Dat54Sound { - public MetaHash AutomationChildSound { get; set; } //?? + public MetaHash FallBackSound { get; set; } //fallback sound public float PlaybackRate { get; set; } //0x4-0x8 //rate at which the midi is played back, 1.0 default public float PlaybackRateVariance { get; set; } //0x8-0xC //variance of the playback rate public MetaHash PlaybackRateParameter { get; set; } //0xC-0x10 //parameter override for playback rate @@ -4463,12 +4463,12 @@ namespace CodeWalker.GameFiles { } public Dat54AutomationSound(RelData d, BinaryReader br) : base(d, br) { - AutomationChildSound = br.ReadUInt32(); + FallBackSound = br.ReadUInt32(); PlaybackRate = br.ReadSingle(); PlaybackRateVariance = br.ReadSingle(); PlaybackRateParameter = br.ReadUInt32(); Map = br.ReadUInt32(); - AudioTrackHashes = new[] { AutomationChildSound, Map }; + AudioTrackHashes = new[] { FallBackSound, Map }; ContainerName = br.ReadUInt32(); FileName = br.ReadUInt32(); UnkDataCount = br.ReadInt32(); @@ -4481,7 +4481,7 @@ namespace CodeWalker.GameFiles public override void ReadXml(XmlNode node) { base.ReadXml(node); - AutomationChildSound = XmlRel.GetHash(Xml.GetChildInnerText(node, "AutomationChildSound")); + FallBackSound = XmlRel.GetHash(Xml.GetChildInnerText(node, "FallBackSound")); PlaybackRate = Xml.GetChildFloatAttribute(node, "PlaybackRate", "value"); PlaybackRateVariance = Xml.GetChildFloatAttribute(node, "PlaybackRateVariance", "value"); PlaybackRateParameter = XmlRel.GetHash(Xml.GetChildInnerText(node, "PlaybackRateParameter")); @@ -4494,7 +4494,7 @@ namespace CodeWalker.GameFiles public override void WriteXml(StringBuilder sb, int indent) { base.WriteXml(sb, indent); - RelXml.StringTag(sb, indent, "AutomationChildSound", RelXml.HashString(AutomationChildSound)); + RelXml.StringTag(sb, indent, "FallBackSound", RelXml.HashString(FallBackSound)); RelXml.ValueTag(sb, indent, "PlaybackRate", FloatUtil.ToString(PlaybackRate)); RelXml.ValueTag(sb, indent, "PlaybackRateVariance", FloatUtil.ToString(PlaybackRateVariance)); RelXml.StringTag(sb, indent, "PlaybackRateParameter", RelXml.HashString(PlaybackRateParameter)); @@ -4506,7 +4506,7 @@ namespace CodeWalker.GameFiles public override void Write(BinaryWriter bw) { base.Write(bw); - bw.Write(AutomationChildSound); + bw.Write(FallBackSound); bw.Write(PlaybackRate); bw.Write(PlaybackRateVariance); bw.Write(PlaybackRateParameter); @@ -5519,10 +5519,8 @@ namespace CodeWalker.GameFiles public float Unk01 { get; set; } //1, 5, 100, ... public float InnerRad { get; set; } //0, 4, ... 100 ... min value? public float OuterRad { get; set; } //15, 16, 12, 10, 20, 300 ... max value? - public FlagsByte Unk02 { get; set; } - public FlagsByte Unk03 { get; set; } //0,1,2,3,4,5 - public FlagsByte Unk04 { get; set; } - public FlagsByte Unk05 { get; set; } //0,1,2,3,4,5 + public FlagsUshort StartTime { get; set; } + public FlagsUshort EndTime { get; set; } public FlagsUshort Unk06 { get; set; } //0..600 public FlagsUshort Unk07 { get; set; } //0..150 public FlagsByte Unk08 { get; set; } //0,1,2 @@ -5590,10 +5588,8 @@ namespace CodeWalker.GameFiles Unk01 = br.ReadSingle(); //1, 5, 100, ... InnerRad = br.ReadSingle(); //0, 4, ... 100 ... min value? OuterRad = br.ReadSingle(); //15, 16, 12, 10, 20, 300 ... max value? - Unk02 = br.ReadByte(); - Unk03 = br.ReadByte(); //0,1,2,3,4,5 - Unk04 = br.ReadByte(); - Unk05 = br.ReadByte(); //0,1,2,3,4,5 + StartTime = br.ReadUInt16(); + EndTime = br.ReadUInt16(); Unk06 = br.ReadUInt16(); //0..600 Unk07 = br.ReadUInt16(); //0..150 Unk08 = br.ReadByte(); //0,1,2 @@ -5627,37 +5623,13 @@ namespace CodeWalker.GameFiles #region testing - switch (Unk02.Value)//no pattern? + switch (StartTime.Value)//ushort in minutes { default: break; } - switch (Unk03.Value) + switch (EndTime.Value)//ushort in minutes { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - break; - default: - break; - } - switch (Unk04.Value)//no pattern? - { - default: - break; - } - switch (Unk05.Value) - { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - break; default: break; } @@ -5877,10 +5849,8 @@ namespace CodeWalker.GameFiles bw.Write(Unk01); bw.Write(InnerRad); bw.Write(OuterRad); - bw.Write(Unk02); - bw.Write(Unk03); - bw.Write(Unk04); - bw.Write(Unk05); + bw.Write(StartTime); + bw.Write(EndTime); bw.Write(Unk06); bw.Write(Unk07); bw.Write(Unk08); @@ -5917,10 +5887,8 @@ namespace CodeWalker.GameFiles RelXml.ValueTag(sb, indent, "Unk01", FloatUtil.ToString(Unk01)); RelXml.ValueTag(sb, indent, "InnerRad", FloatUtil.ToString(InnerRad)); RelXml.ValueTag(sb, indent, "OuterRad", FloatUtil.ToString(OuterRad)); - RelXml.ValueTag(sb, indent, "Unk02", Unk02.Value.ToString()); - RelXml.ValueTag(sb, indent, "Unk03", Unk03.Value.ToString()); - RelXml.ValueTag(sb, indent, "Unk04", Unk04.Value.ToString()); - RelXml.ValueTag(sb, indent, "Unk05", Unk05.Value.ToString()); + RelXml.ValueTag(sb, indent, "StartTime", StartTime.Value.ToString()); + RelXml.ValueTag(sb, indent, "EndTime", EndTime.Value.ToString()); RelXml.ValueTag(sb, indent, "Unk06", Unk06.Value.ToString()); RelXml.ValueTag(sb, indent, "Unk07", Unk07.Value.ToString()); RelXml.ValueTag(sb, indent, "Unk08", Unk08.Value.ToString()); @@ -5946,10 +5914,8 @@ namespace CodeWalker.GameFiles Unk01 = Xml.GetChildFloatAttribute(node, "Unk01", "value"); InnerRad = Xml.GetChildFloatAttribute(node, "InnerRad", "value"); OuterRad = Xml.GetChildFloatAttribute(node, "OuterRad", "value"); - Unk02 = (byte)Xml.GetChildUIntAttribute(node, "Unk02", "value"); - Unk03 = (byte)Xml.GetChildUIntAttribute(node, "Unk03", "value"); - Unk04 = (byte)Xml.GetChildUIntAttribute(node, "Unk04", "value"); - Unk05 = (byte)Xml.GetChildUIntAttribute(node, "Unk05", "value"); + StartTime = (ushort)Xml.GetChildUIntAttribute(node, "StartTime", "value"); + EndTime = (ushort)Xml.GetChildUIntAttribute(node, "EndTime", "value"); Unk06 = (ushort)Xml.GetChildUIntAttribute(node, "Unk06", "value"); Unk07 = (ushort)Xml.GetChildUIntAttribute(node, "Unk07", "value"); Unk08 = (byte)Xml.GetChildUIntAttribute(node, "Unk08", "value"); @@ -6693,7 +6659,7 @@ namespace CodeWalker.GameFiles { public MetaHash FallBackWeapon { get; set; } public uint AudioItemCount { get; set; } - public Dat151HashPair[] Weapons { get; set; } + public Dat151WeaponAudioItemItem[] Weapons { get; set; } public Dat151WeaponAudioItem(RelFile rel) : base(rel) { @@ -6705,10 +6671,10 @@ namespace CodeWalker.GameFiles FallBackWeapon = br.ReadUInt32(); AudioItemCount = br.ReadUInt32(); - Dat151HashPair[] items = new Dat151HashPair[AudioItemCount]; + Dat151WeaponAudioItemItem[] items = new Dat151WeaponAudioItemItem[AudioItemCount]; for (int i = 0; i < AudioItemCount; i++) { - items[i] = new Dat151HashPair(br); + items[i] = new Dat151WeaponAudioItemItem(br); } this.Weapons = items; @@ -6734,7 +6700,7 @@ namespace CodeWalker.GameFiles public override void ReadXml(XmlNode node) { FallBackWeapon = XmlRel.GetHash(Xml.GetChildInnerText(node, "FallBackWeapon")); - Weapons = XmlRel.ReadItemArray(node, "Weapons"); + Weapons = XmlRel.ReadItemArray(node, "Weapons"); AudioItemCount = (uint)(Weapons?.Length ?? 0); } public override uint[] GetHashTableOffsets() @@ -6748,6 +6714,38 @@ namespace CodeWalker.GameFiles return offsets.ToArray(); } } + [TC(typeof(EXP))] + public struct Dat151WeaponAudioItemItem : IMetaXmlItem + { + public MetaHash Category { get; set; } + public MetaHash Weapon { get; set; } + + public Dat151WeaponAudioItemItem(BinaryReader br) + { + Category = br.ReadUInt32(); + Weapon = br.ReadUInt32(); + } + public void Write(BinaryWriter bw) + { + bw.Write(Category); + bw.Write(Weapon); + } + public void WriteXml(StringBuilder sb, int indent) + { + RelXml.StringTag(sb, indent, "Category", RelXml.HashString(Category)); + RelXml.StringTag(sb, indent, "Weapon", RelXml.HashString(Weapon)); + } + public void ReadXml(XmlNode node) + { + Category = XmlRel.GetHash(Xml.GetChildInnerText(node, "Category")); + Weapon = XmlRel.GetHash(Xml.GetChildInnerText(node, "Weapon")); + } + public override string ToString() + { + return Category.ToString() + ": " + Weapon.ToString(); + } + } + [TC(typeof(EXP))] public class Dat151StartTrackAction : Dat151RelData { public FlagsUint Unk0 { get; set; } @@ -6756,15 +6754,15 @@ namespace CodeWalker.GameFiles public MetaHash AudioTrack0 { get; set; } public MetaHash AudioTrack1 { get; set; } public float Unk3 { get; set; } - public MetaHash Unk4 { get; set; } - public MetaHash AudioTrack2 { get; set; } + public MetaHash Track { get; set; } + public MetaHash Mood { get; set; } public float Unk5 { get; set; } public int Unk6 { get; set; } public int Unk7 { get; set; } public float Unk8 { get; set; } public int Unk9 { get; set; } - public uint ItemCount { get; set; } - public Dat151HashPair[] Items { get; set; } + public uint TracksCount { get; set; } + public Dat151StartTrackActionItem[] Tracks { get; set; } public Dat151StartTrackAction(RelFile rel) : base(rel) @@ -6780,21 +6778,21 @@ namespace CodeWalker.GameFiles AudioTrack0 = br.ReadUInt32(); AudioTrack1 = br.ReadUInt32(); Unk3 = br.ReadSingle(); - Unk4 = br.ReadUInt32(); - AudioTrack2 = br.ReadUInt32(); + Track = br.ReadUInt32(); + Mood = br.ReadUInt32(); Unk5 = br.ReadSingle(); Unk6 = br.ReadInt32(); Unk7 = br.ReadInt32(); Unk8 = br.ReadSingle(); Unk9 = br.ReadInt32(); - ItemCount = br.ReadUInt32(); + TracksCount = br.ReadUInt32(); - Dat151HashPair[] items = new Dat151HashPair[ItemCount]; - for (int i = 0; i < ItemCount; i++) + Dat151StartTrackActionItem[] items = new Dat151StartTrackActionItem[TracksCount]; + for (int i = 0; i < TracksCount; i++) { - items[i] = new Dat151HashPair(br); + items[i] = new Dat151StartTrackActionItem(br); } - this.Items = items; + this.Tracks = items; if (Unk1 != 0) { } @@ -6813,18 +6811,18 @@ namespace CodeWalker.GameFiles bw.Write(AudioTrack0); bw.Write(AudioTrack1); bw.Write(Unk3); - bw.Write(Unk4); - bw.Write(AudioTrack2); + bw.Write(Track); + bw.Write(Mood); bw.Write(Unk5); bw.Write(Unk6); bw.Write(Unk7); bw.Write(Unk8); bw.Write(Unk9); - bw.Write(ItemCount); + bw.Write(TracksCount); - for (int i = 0; i < ItemCount; i++) + for (int i = 0; i < TracksCount; i++) { - Items[i].Write(bw); + Tracks[i].Write(bw); } } @@ -6836,14 +6834,14 @@ namespace CodeWalker.GameFiles RelXml.StringTag(sb, indent, "AudioTrack0", RelXml.HashString(AudioTrack0)); RelXml.StringTag(sb, indent, "AudioTrack1", RelXml.HashString(AudioTrack1)); RelXml.ValueTag(sb, indent, "Unk3", FloatUtil.ToString(Unk3)); - RelXml.StringTag(sb, indent, "Unk4", RelXml.HashString(Unk4)); - RelXml.StringTag(sb, indent, "AudioTrack2", RelXml.HashString(AudioTrack2)); + RelXml.StringTag(sb, indent, "Track", RelXml.HashString(Track)); + RelXml.StringTag(sb, indent, "Mood", RelXml.HashString(Mood)); RelXml.ValueTag(sb, indent, "Unk5", FloatUtil.ToString(Unk5)); RelXml.ValueTag(sb, indent, "Unk6", Unk6.ToString()); RelXml.ValueTag(sb, indent, "Unk7", Unk7.ToString()); RelXml.ValueTag(sb, indent, "Unk8", FloatUtil.ToString(Unk8)); RelXml.ValueTag(sb, indent, "Unk9", Unk9.ToString()); - RelXml.WriteItemArray(sb, Items, indent, "Items"); + RelXml.WriteItemArray(sb, Tracks, indent, "Tracks"); } public override void ReadXml(XmlNode node) { @@ -6853,21 +6851,54 @@ namespace CodeWalker.GameFiles AudioTrack0 = XmlRel.GetHash(Xml.GetChildInnerText(node, "AudioTrack0")); AudioTrack1 = XmlRel.GetHash(Xml.GetChildInnerText(node, "AudioTrack1")); Unk3 = Xml.GetChildFloatAttribute(node, "Unk3", "value"); - Unk4 = XmlRel.GetHash(Xml.GetChildInnerText(node, "Unk4")); - AudioTrack2 = XmlRel.GetHash(Xml.GetChildInnerText(node, "AudioTrack2")); + Track = XmlRel.GetHash(Xml.GetChildInnerText(node, "Track")); + Mood = XmlRel.GetHash(Xml.GetChildInnerText(node, "Mood")); Unk5 = Xml.GetChildFloatAttribute(node, "Unk5", "value"); Unk6 = Xml.GetChildIntAttribute(node, "Unk6", "value"); Unk7 = Xml.GetChildIntAttribute(node, "Unk7", "value"); Unk8 = Xml.GetChildFloatAttribute(node, "Unk8", "value"); Unk9 = Xml.GetChildIntAttribute(node, "Unk9", "value"); - Items = XmlRel.ReadItemArray(node, "Items"); - ItemCount = (uint)(Items?.Length ?? 0); + Tracks = XmlRel.ReadItemArray(node, "Tracks"); + TracksCount = (uint)(Tracks?.Length ?? 0); } public override uint[] GetHashTableOffsets() { return new uint[] { 12, 16, 28 }; } } + + [TC(typeof(EXP))] + public struct Dat151StartTrackActionItem : IMetaXmlItem + { + public MetaHash Track { get; set; } + public FlagsUint Flags { get; set; } + + public Dat151StartTrackActionItem(BinaryReader br) + { + Track = br.ReadUInt32(); + Flags = br.ReadUInt32(); + } + public void Write(BinaryWriter bw) + { + bw.Write(Track); + bw.Write(Flags); + } + public void WriteXml(StringBuilder sb, int indent) + { + RelXml.StringTag(sb, indent, "Track", RelXml.HashString(Track)); + RelXml.ValueTag(sb, indent, "Flags", "0x" + Flags.Hex); + } + public void ReadXml(XmlNode node) + { + Track = XmlRel.GetHash(Xml.GetChildInnerText(node, "Track")); + Flags = Xml.GetChildUIntAttribute(node, "Flags", "value"); + } + public override string ToString() + { + return Track.ToString() + ": " + Flags.ToString(); + } + } + [TC(typeof(EXP))] public class Dat151StopTrackAction : Dat151RelData { public FlagsUint Unk0 { get; set; } @@ -6940,7 +6971,7 @@ namespace CodeWalker.GameFiles } [TC(typeof(EXP))] public class Dat151MoodItem : IMetaXmlItem { - public MetaHash AudioTrack0 { get; set; } + public MetaHash StemMix { get; set; } public MetaHash AudioTrack1 { get; set; } public float Unk1 { get; set; } public float Unk2 { get; set; } @@ -6951,7 +6982,7 @@ namespace CodeWalker.GameFiles public override string ToString() { - return AudioTrack0.ToString(); + return StemMix.ToString(); } public Dat151MoodItem() @@ -6959,7 +6990,7 @@ namespace CodeWalker.GameFiles } public Dat151MoodItem(BinaryReader br) { - AudioTrack0 = br.ReadUInt32(); + StemMix = br.ReadUInt32(); AudioTrack1 = br.ReadUInt32(); Unk1 = br.ReadSingle(); Unk2 = br.ReadSingle(); @@ -6970,7 +7001,7 @@ namespace CodeWalker.GameFiles } public void Write(BinaryWriter bw) { - bw.Write(AudioTrack0); + bw.Write(StemMix); bw.Write(AudioTrack1); bw.Write(Unk1); bw.Write(Unk2); @@ -6981,7 +7012,7 @@ namespace CodeWalker.GameFiles } public void WriteXml(StringBuilder sb, int indent) { - RelXml.StringTag(sb, indent, "AudioTrack0", RelXml.HashString(AudioTrack0)); + RelXml.StringTag(sb, indent, "StemMix", RelXml.HashString(StemMix)); RelXml.StringTag(sb, indent, "AudioTrack1", RelXml.HashString(AudioTrack1)); RelXml.ValueTag(sb, indent, "Unk1", FloatUtil.ToString(Unk1)); RelXml.ValueTag(sb, indent, "Unk2", FloatUtil.ToString(Unk2)); @@ -6992,7 +7023,7 @@ namespace CodeWalker.GameFiles } public void ReadXml(XmlNode node) { - AudioTrack0 = XmlRel.GetHash(Xml.GetChildInnerText(node, "AudioTrack0")); + StemMix = XmlRel.GetHash(Xml.GetChildInnerText(node, "StemMix")); AudioTrack1 = XmlRel.GetHash(Xml.GetChildInnerText(node, "AudioTrack1")); Unk1 = Xml.GetChildFloatAttribute(node, "Unk1", "value"); Unk2 = Xml.GetChildFloatAttribute(node, "Unk2", "value"); @@ -7083,7 +7114,7 @@ namespace CodeWalker.GameFiles public MetaHash AudioTrack0 { get; set; } public MetaHash AudioTrack1 { get; set; } public float Unk3 { get; set; } - public MetaHash AudioTrack2 { get; set; } + public MetaHash Mood { get; set; } public float Unk4 { get; set; } public int Unk5 { get; set; } public int Unk6 { get; set; } @@ -7101,7 +7132,7 @@ namespace CodeWalker.GameFiles AudioTrack0 = br.ReadUInt32(); AudioTrack1 = br.ReadUInt32(); Unk3 = br.ReadSingle(); - AudioTrack2 = br.ReadUInt32(); + Mood = br.ReadUInt32(); Unk4 = br.ReadSingle(); Unk5 = br.ReadInt32(); Unk6 = br.ReadInt32(); @@ -7123,7 +7154,7 @@ namespace CodeWalker.GameFiles bw.Write(AudioTrack0); bw.Write(AudioTrack1); bw.Write(Unk3); - bw.Write(AudioTrack2); + bw.Write(Mood); bw.Write(Unk4); bw.Write(Unk5); bw.Write(Unk6); @@ -7136,7 +7167,7 @@ namespace CodeWalker.GameFiles RelXml.StringTag(sb, indent, "AudioTrack0", RelXml.HashString(AudioTrack0)); RelXml.StringTag(sb, indent, "AudioTrack1", RelXml.HashString(AudioTrack1)); RelXml.ValueTag(sb, indent, "Unk3", FloatUtil.ToString(Unk3)); - RelXml.StringTag(sb, indent, "AudioTrack2", RelXml.HashString(AudioTrack2)); + RelXml.StringTag(sb, indent, "Mood", RelXml.HashString(Mood)); RelXml.ValueTag(sb, indent, "Unk4", FloatUtil.ToString(Unk4)); RelXml.ValueTag(sb, indent, "Unk5", Unk5.ToString()); RelXml.ValueTag(sb, indent, "Unk6", Unk6.ToString()); @@ -7149,7 +7180,7 @@ namespace CodeWalker.GameFiles AudioTrack0 = XmlRel.GetHash(Xml.GetChildInnerText(node, "AudioTrack0")); AudioTrack1 = XmlRel.GetHash(Xml.GetChildInnerText(node, "AudioTrack1")); Unk3 = Xml.GetChildFloatAttribute(node, "Unk3", "value"); - AudioTrack2 = XmlRel.GetHash(Xml.GetChildInnerText(node, "AudioTrack2")); + Mood = XmlRel.GetHash(Xml.GetChildInnerText(node, "Mood")); Unk4 = Xml.GetChildFloatAttribute(node, "Unk4", "value"); Unk5 = Xml.GetChildIntAttribute(node, "Unk5", "value"); Unk6 = Xml.GetChildIntAttribute(node, "Unk6", "value"); @@ -11664,12 +11695,12 @@ namespace CodeWalker.GameFiles public byte Unk01 { get; set; } = 94; public byte Unk02 { get; set; } = 57; public byte Unk03 { get; set; } = 245; - public byte ItemCount1 { get; set; } - public Dat151PedVoiceGroupItem[] Items1 { get; set; } - public byte ItemCount2 { get; set; } - public Dat151PedVoiceGroupItem[] Items2 { get; set; } - public byte ItemCount3 { get; set; } - public Dat151PedVoiceGroupItem[] Items3 { get; set; } + public byte FullCount { get; set; } + public Dat151PedVoiceGroupItem[] Full { get; set; } + public byte MiniCount { get; set; } + public Dat151PedVoiceGroupItem[] Mini { get; set; } + public byte UnkItemsCount { get; set; } + public Dat151PedVoiceGroupItem[] UnkItems { get; set; } public byte Unk07 { get; set; } //item count4? (=0) @@ -11686,25 +11717,25 @@ namespace CodeWalker.GameFiles Unk02 = br.ReadByte();//57 Unk03 = br.ReadByte();//245 - ItemCount1 = br.ReadByte(); - Items1 = new Dat151PedVoiceGroupItem[ItemCount1]; - for (int i = 0; i < ItemCount1; i++) + FullCount = br.ReadByte(); + Full = new Dat151PedVoiceGroupItem[FullCount]; + for (int i = 0; i < FullCount; i++) { - Items1[i] = new Dat151PedVoiceGroupItem(br); + Full[i] = new Dat151PedVoiceGroupItem(br); } - ItemCount2 = br.ReadByte(); - Items2 = new Dat151PedVoiceGroupItem[ItemCount2]; - for (int i = 0; i < ItemCount2; i++) + MiniCount = br.ReadByte(); + Mini = new Dat151PedVoiceGroupItem[MiniCount]; + for (int i = 0; i < MiniCount; i++) { - Items2[i] = new Dat151PedVoiceGroupItem(br); + Mini[i] = new Dat151PedVoiceGroupItem(br); } - ItemCount3 = br.ReadByte(); - Items3 = new Dat151PedVoiceGroupItem[ItemCount3]; - for (int i = 0; i < ItemCount3; i++) + UnkItemsCount = br.ReadByte(); + UnkItems = new Dat151PedVoiceGroupItem[UnkItemsCount]; + for (int i = 0; i < UnkItemsCount; i++) { - Items3[i] = new Dat151PedVoiceGroupItem(br); + UnkItems[i] = new Dat151PedVoiceGroupItem(br); } Unk07 = br.ReadByte(); @@ -11733,20 +11764,20 @@ namespace CodeWalker.GameFiles bw.Write(Unk01);//94 bw.Write(Unk02);//57 bw.Write(Unk03);//245 - bw.Write(ItemCount1); - for (int i = 0; i < ItemCount1; i++) + bw.Write(FullCount); + for (int i = 0; i < FullCount; i++) { - Items1[i].Write(bw); + Full[i].Write(bw); } - bw.Write(ItemCount2); - for (int i = 0; i < ItemCount2; i++) + bw.Write(MiniCount); + for (int i = 0; i < MiniCount; i++) { - Items2[i].Write(bw); + Mini[i].Write(bw); } - bw.Write(ItemCount3); - for (int i = 0; i < ItemCount3; i++) + bw.Write(UnkItemsCount); + for (int i = 0; i < UnkItemsCount; i++) { - Items3[i].Write(bw); + UnkItems[i].Write(bw); } bw.Write(Unk07); } @@ -11756,9 +11787,9 @@ namespace CodeWalker.GameFiles RelXml.ValueTag(sb, indent, "Unk01", Unk01.ToString()); RelXml.ValueTag(sb, indent, "Unk02", Unk02.ToString()); RelXml.ValueTag(sb, indent, "Unk03", Unk03.ToString()); - RelXml.WriteItemArray(sb, Items1, indent, "Items1"); - RelXml.WriteItemArray(sb, Items2, indent, "Items2"); - RelXml.WriteItemArray(sb, Items3, indent, "Items3"); + RelXml.WriteItemArray(sb, Full, indent, "Full"); + RelXml.WriteItemArray(sb, Mini, indent, "Mini"); + RelXml.WriteItemArray(sb, UnkItems, indent, "UnkItems"); RelXml.ValueTag(sb, indent, "Unk07", Unk07.ToString()); } public override void ReadXml(XmlNode node) @@ -11767,12 +11798,12 @@ namespace CodeWalker.GameFiles Unk01 = (byte)Xml.GetChildUIntAttribute(node, "Unk01", "value"); Unk02 = (byte)Xml.GetChildUIntAttribute(node, "Unk02", "value"); Unk03 = (byte)Xml.GetChildUIntAttribute(node, "Unk03", "value"); - Items1 = XmlRel.ReadItemArray(node, "Items1"); - ItemCount1 = (byte)(Items1?.Length ?? 0); - Items2 = XmlRel.ReadItemArray(node, "Items2"); - ItemCount2 = (byte)(Items2?.Length ?? 0); - Items3 = XmlRel.ReadItemArray(node, "Items3"); - ItemCount3 = (byte)(Items3?.Length ?? 0); + Full = XmlRel.ReadItemArray(node, "Full"); + FullCount = (byte)(Full?.Length ?? 0); + Mini = XmlRel.ReadItemArray(node, "Mini"); + MiniCount = (byte)(Mini?.Length ?? 0); + UnkItems = XmlRel.ReadItemArray(node, "UnkItems"); + UnkItemsCount = (byte)(UnkItems?.Length ?? 0); Unk07 = (byte)Xml.GetChildUIntAttribute(node, "Unk07", "value"); } } @@ -15860,14 +15891,14 @@ namespace CodeWalker.GameFiles } [TC(typeof(EXP))] public class Dat151StemMix : Dat151RelData { - public short Unk01 { get; set; } - public short Unk02 { get; set; } - public short Unk03 { get; set; } - public short Unk04 { get; set; } - public short Unk05 { get; set; } - public short Unk06 { get; set; } - public short Unk07 { get; set; } - public short Unk08 { get; set; } + public short Stem1Volume { get; set; } + public short Stem2Volume { get; set; } + public short Stem3Volume { get; set; } + public short Stem4Volume { get; set; } + public short Stem5Volume { get; set; } + public short Stem6Volume { get; set; } + public short Stem7Volume { get; set; } + public short Stem8Volume { get; set; } public Dat151StemMix(RelFile rel) : base(rel) { @@ -15876,14 +15907,14 @@ namespace CodeWalker.GameFiles } public Dat151StemMix(RelData d, BinaryReader br) : base(d, br) { - Unk01 = br.ReadInt16(); - Unk02 = br.ReadInt16(); - Unk03 = br.ReadInt16(); - Unk04 = br.ReadInt16(); - Unk05 = br.ReadInt16(); - Unk06 = br.ReadInt16(); - Unk07 = br.ReadInt16(); - Unk08 = br.ReadInt16(); + Stem1Volume = br.ReadInt16(); + Stem2Volume = br.ReadInt16(); + Stem3Volume = br.ReadInt16(); + Stem4Volume = br.ReadInt16(); + Stem5Volume = br.ReadInt16(); + Stem6Volume = br.ReadInt16(); + Stem7Volume = br.ReadInt16(); + Stem8Volume = br.ReadInt16(); var bytesleft = br.BaseStream.Length - br.BaseStream.Position; if (bytesleft != 0) @@ -15893,36 +15924,36 @@ namespace CodeWalker.GameFiles { WriteTypeAndOffset(bw); - bw.Write(Unk01); - bw.Write(Unk02); - bw.Write(Unk03); - bw.Write(Unk04); - bw.Write(Unk05); - bw.Write(Unk06); - bw.Write(Unk07); - bw.Write(Unk08); + bw.Write(Stem1Volume); + bw.Write(Stem2Volume); + bw.Write(Stem3Volume); + bw.Write(Stem4Volume); + bw.Write(Stem5Volume); + bw.Write(Stem6Volume); + bw.Write(Stem7Volume); + bw.Write(Stem8Volume); } public override void WriteXml(StringBuilder sb, int indent) { - RelXml.ValueTag(sb, indent, "Unk01", Unk01.ToString()); - RelXml.ValueTag(sb, indent, "Unk02", Unk02.ToString()); - RelXml.ValueTag(sb, indent, "Unk03", Unk03.ToString()); - RelXml.ValueTag(sb, indent, "Unk04", Unk04.ToString()); - RelXml.ValueTag(sb, indent, "Unk05", Unk05.ToString()); - RelXml.ValueTag(sb, indent, "Unk06", Unk06.ToString()); - RelXml.ValueTag(sb, indent, "Unk07", Unk07.ToString()); - RelXml.ValueTag(sb, indent, "Unk08", Unk08.ToString()); + RelXml.ValueTag(sb, indent, "Stem1Volume", Stem1Volume.ToString()); + RelXml.ValueTag(sb, indent, "Stem2Volume", Stem2Volume.ToString()); + RelXml.ValueTag(sb, indent, "Stem3Volume", Stem3Volume.ToString()); + RelXml.ValueTag(sb, indent, "Stem4Volume", Stem4Volume.ToString()); + RelXml.ValueTag(sb, indent, "Stem5Volume", Stem5Volume.ToString()); + RelXml.ValueTag(sb, indent, "Stem6Volume", Stem6Volume.ToString()); + RelXml.ValueTag(sb, indent, "Stem7Volume", Stem7Volume.ToString()); + RelXml.ValueTag(sb, indent, "Stem8Volume", Stem8Volume.ToString()); } public override void ReadXml(XmlNode node) { - Unk01 = (short)Xml.GetChildIntAttribute(node, "Unk01", "value"); - Unk02 = (short)Xml.GetChildIntAttribute(node, "Unk02", "value"); - Unk03 = (short)Xml.GetChildIntAttribute(node, "Unk03", "value"); - Unk04 = (short)Xml.GetChildIntAttribute(node, "Unk04", "value"); - Unk05 = (short)Xml.GetChildIntAttribute(node, "Unk05", "value"); - Unk06 = (short)Xml.GetChildIntAttribute(node, "Unk06", "value"); - Unk07 = (short)Xml.GetChildIntAttribute(node, "Unk07", "value"); - Unk08 = (short)Xml.GetChildIntAttribute(node, "Unk08", "value"); + Stem1Volume = (short)Xml.GetChildIntAttribute(node, "Stem1Volume", "value"); + Stem2Volume = (short)Xml.GetChildIntAttribute(node, "Stem2Volume", "value"); + Stem3Volume = (short)Xml.GetChildIntAttribute(node, "Stem3Volume", "value"); + Stem4Volume = (short)Xml.GetChildIntAttribute(node, "Stem4Volume", "value"); + Stem5Volume = (short)Xml.GetChildIntAttribute(node, "Stem5Volume", "value"); + Stem6Volume = (short)Xml.GetChildIntAttribute(node, "Stem6Volume", "value"); + Stem7Volume = (short)Xml.GetChildIntAttribute(node, "Stem7Volume", "value"); + Stem8Volume = (short)Xml.GetChildIntAttribute(node, "Stem8Volume", "value"); } } [TC(typeof(EXP))] public class Dat151Unk69 : Dat151RelData @@ -21911,11 +21942,10 @@ namespace CodeWalker.GameFiles [TC(typeof(EXP))] public class Dat15PatchItem : IMetaXmlItem { - public MetaHash Unk01 { get; set; } - public short Unk02 { get; set; } + public MetaHash Category { get; set; } + public short Volume { get; set; } public byte Unk03 { get; set; } - public byte Unk04 { get; set; } - public byte Unk05 { get; set; } + public short LPFCutoff { get; set; } public byte Unk06 { get; set; } public short Unk07 { get; set; } public byte Unk08 { get; set; } @@ -21927,11 +21957,10 @@ namespace CodeWalker.GameFiles { } public Dat15PatchItem(BinaryReader br) { - Unk01 = br.ReadUInt32(); - Unk02 = br.ReadInt16(); + Category = br.ReadUInt32(); + Volume = br.ReadInt16(); Unk03 = br.ReadByte(); - Unk04 = br.ReadByte(); - Unk05 = br.ReadByte(); + LPFCutoff = br.ReadInt16(); Unk06 = br.ReadByte(); Unk07 = br.ReadInt16(); Unk08 = br.ReadByte(); @@ -21941,11 +21970,10 @@ namespace CodeWalker.GameFiles } public void Write(BinaryWriter bw) { - bw.Write(Unk01); - bw.Write(Unk02); + bw.Write(Category); + bw.Write(Volume); bw.Write(Unk03); - bw.Write(Unk04); - bw.Write(Unk05); + bw.Write(LPFCutoff); bw.Write(Unk06); bw.Write(Unk07); bw.Write(Unk08); @@ -21955,11 +21983,10 @@ namespace CodeWalker.GameFiles } public void WriteXml(StringBuilder sb, int indent) { - RelXml.StringTag(sb, indent, "Unk01", RelXml.HashString(Unk01)); - RelXml.ValueTag(sb, indent, "Unk02", Unk02.ToString()); + RelXml.StringTag(sb, indent, "Category", RelXml.HashString(Category)); + RelXml.ValueTag(sb, indent, "Volume", Volume.ToString()); RelXml.ValueTag(sb, indent, "Unk03", Unk03.ToString()); - RelXml.ValueTag(sb, indent, "Unk04", Unk04.ToString()); - RelXml.ValueTag(sb, indent, "Unk05", Unk05.ToString()); + RelXml.ValueTag(sb, indent, "LPFCutoff", LPFCutoff.ToString()); RelXml.ValueTag(sb, indent, "Unk06", Unk06.ToString()); RelXml.ValueTag(sb, indent, "Unk07", Unk07.ToString()); RelXml.ValueTag(sb, indent, "Unk08", Unk08.ToString()); @@ -21969,11 +21996,10 @@ namespace CodeWalker.GameFiles } public void ReadXml(XmlNode node) { - Unk01 = XmlRel.GetHash(Xml.GetChildInnerText(node, "Unk01")); - Unk02 = (short)Xml.GetChildIntAttribute(node, "Unk02", "value"); + Category = XmlRel.GetHash(Xml.GetChildInnerText(node, "Category")); + Volume = (short)Xml.GetChildIntAttribute(node, "Volume", "value"); Unk03 = (byte)Xml.GetChildUIntAttribute(node, "Unk03", "value"); - Unk04 = (byte)Xml.GetChildUIntAttribute(node, "Unk04", "value"); - Unk05 = (byte)Xml.GetChildUIntAttribute(node, "Unk05", "value"); + LPFCutoff = (short)Xml.GetChildUIntAttribute(node, "LPFCutoff", "value"); Unk06 = (byte)Xml.GetChildUIntAttribute(node, "Unk06", "value"); Unk07 = (short)Xml.GetChildIntAttribute(node, "Unk07", "value"); Unk08 = (byte)Xml.GetChildUIntAttribute(node, "Unk08", "value"); @@ -21983,11 +22009,10 @@ namespace CodeWalker.GameFiles } public override string ToString() { - return Unk01.ToString() + ": " + - Unk02.ToString() + ", " + + return Category.ToString() + ": " + + Volume.ToString() + ", " + Unk03.ToString() + ", " + - Unk04.ToString() + ", " + - Unk05.ToString() + ", " + + LPFCutoff.ToString() + ", " + Unk06.ToString() + ", " + Unk07.ToString() + ", " + Unk08.ToString() + ", " + diff --git a/CodeWalker/Project/Panels/EditAudioEmitterPanel.Designer.cs b/CodeWalker/Project/Panels/EditAudioEmitterPanel.Designer.cs index 38e18e2..730c8e6 100644 --- a/CodeWalker/Project/Panels/EditAudioEmitterPanel.Designer.cs +++ b/CodeWalker/Project/Panels/EditAudioEmitterPanel.Designer.cs @@ -67,10 +67,8 @@ this.Flags4TextBox = new System.Windows.Forms.TextBox(); this.label23 = new System.Windows.Forms.Label(); this.Flags5TextBox = new System.Windows.Forms.TextBox(); - this.Unk02UpDown = new System.Windows.Forms.NumericUpDown(); - this.Unk03UpDown = new System.Windows.Forms.NumericUpDown(); - this.Unk04UpDown = new System.Windows.Forms.NumericUpDown(); - this.Unk05UpDown = new System.Windows.Forms.NumericUpDown(); + this.StartTimeUpDown = new System.Windows.Forms.NumericUpDown(); + this.EndTimeUpDown = new System.Windows.Forms.NumericUpDown(); this.Unk06UpDown = new System.Windows.Forms.NumericUpDown(); this.Unk08UpDown = new System.Windows.Forms.NumericUpDown(); this.Unk07UpDown = new System.Windows.Forms.NumericUpDown(); @@ -81,10 +79,8 @@ this.Unk13UpDown = new System.Windows.Forms.NumericUpDown(); this.tabControl1.SuspendLayout(); this.tabPage1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.Unk02UpDown)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.Unk03UpDown)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.Unk04UpDown)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.Unk05UpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.StartTimeUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.EndTimeUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.Unk06UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.Unk08UpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.Unk07UpDown)).BeginInit(); @@ -128,10 +124,8 @@ this.tabPage1.Controls.Add(this.Unk07UpDown); this.tabPage1.Controls.Add(this.Unk08UpDown); this.tabPage1.Controls.Add(this.Unk06UpDown); - this.tabPage1.Controls.Add(this.Unk05UpDown); - this.tabPage1.Controls.Add(this.Unk04UpDown); - this.tabPage1.Controls.Add(this.Unk03UpDown); - this.tabPage1.Controls.Add(this.Unk02UpDown); + this.tabPage1.Controls.Add(this.EndTimeUpDown); + this.tabPage1.Controls.Add(this.StartTimeUpDown); this.tabPage1.Controls.Add(this.label23); this.tabPage1.Controls.Add(this.Flags5TextBox); this.tabPage1.Controls.Add(this.label22); @@ -511,57 +505,31 @@ this.Flags5TextBox.TabIndex = 71; this.Flags5TextBox.TextChanged += new System.EventHandler(this.Flags5TextBox_TextChanged); // - // Unk02UpDown + // StartTimeUpDown // - this.Unk02UpDown.Location = new System.Drawing.Point(84, 175); - this.Unk02UpDown.Maximum = new decimal(new int[] { + this.StartTimeUpDown.Location = new System.Drawing.Point(84, 175); + this.StartTimeUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); - this.Unk02UpDown.Name = "Unk02UpDown"; - this.Unk02UpDown.Size = new System.Drawing.Size(48, 20); - this.Unk02UpDown.TabIndex = 44; - this.Unk02UpDown.ValueChanged += new System.EventHandler(this.Unk02UpDown_ValueChanged); + this.StartTimeUpDown.Name = "StartTimeUpDown"; + this.StartTimeUpDown.Size = new System.Drawing.Size(48, 20); + this.StartTimeUpDown.TabIndex = 44; + this.StartTimeUpDown.ValueChanged += new System.EventHandler(this.StartTimeUpDown_ValueChanged); // - // Unk03UpDown + // EndTimeUpDown // - this.Unk03UpDown.Location = new System.Drawing.Point(138, 175); - this.Unk03UpDown.Maximum = new decimal(new int[] { + this.EndTimeUpDown.Location = new System.Drawing.Point(192, 175); + this.EndTimeUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); - this.Unk03UpDown.Name = "Unk03UpDown"; - this.Unk03UpDown.Size = new System.Drawing.Size(48, 20); - this.Unk03UpDown.TabIndex = 45; - this.Unk03UpDown.ValueChanged += new System.EventHandler(this.Unk03UpDown_ValueChanged); - // - // Unk04UpDown - // - this.Unk04UpDown.Location = new System.Drawing.Point(192, 175); - this.Unk04UpDown.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.Unk04UpDown.Name = "Unk04UpDown"; - this.Unk04UpDown.Size = new System.Drawing.Size(48, 20); - this.Unk04UpDown.TabIndex = 46; - this.Unk04UpDown.ValueChanged += new System.EventHandler(this.Unk04UpDown_ValueChanged); - // - // Unk05UpDown - // - this.Unk05UpDown.Location = new System.Drawing.Point(246, 175); - this.Unk05UpDown.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.Unk05UpDown.Name = "Unk05UpDown"; - this.Unk05UpDown.Size = new System.Drawing.Size(48, 20); - this.Unk05UpDown.TabIndex = 47; - this.Unk05UpDown.ValueChanged += new System.EventHandler(this.Unk05UpDown_ValueChanged); + this.EndTimeUpDown.Name = "EndTimeUpDown"; + this.EndTimeUpDown.Size = new System.Drawing.Size(48, 20); + this.EndTimeUpDown.TabIndex = 46; + this.EndTimeUpDown.ValueChanged += new System.EventHandler(this.EndTimeUpDown_ValueChanged); // // Unk06UpDown // @@ -680,10 +648,8 @@ this.tabControl1.ResumeLayout(false); this.tabPage1.ResumeLayout(false); this.tabPage1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.Unk02UpDown)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.Unk03UpDown)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.Unk04UpDown)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.Unk05UpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.StartTimeUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.EndTimeUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.Unk06UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.Unk08UpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.Unk07UpDown)).EndInit(); @@ -737,10 +703,8 @@ private System.Windows.Forms.Label label19; private System.Windows.Forms.TextBox Flags3TextBox; private System.Windows.Forms.NumericUpDown Unk06UpDown; - private System.Windows.Forms.NumericUpDown Unk05UpDown; - private System.Windows.Forms.NumericUpDown Unk04UpDown; - private System.Windows.Forms.NumericUpDown Unk03UpDown; - private System.Windows.Forms.NumericUpDown Unk02UpDown; + private System.Windows.Forms.NumericUpDown EndTimeUpDown; + private System.Windows.Forms.NumericUpDown StartTimeUpDown; private System.Windows.Forms.NumericUpDown Unk07UpDown; private System.Windows.Forms.NumericUpDown Unk08UpDown; private System.Windows.Forms.NumericUpDown Unk13UpDown; diff --git a/CodeWalker/Project/Panels/EditAudioEmitterPanel.cs b/CodeWalker/Project/Panels/EditAudioEmitterPanel.cs index dd204a3..ec0d7b7 100644 --- a/CodeWalker/Project/Panels/EditAudioEmitterPanel.cs +++ b/CodeWalker/Project/Panels/EditAudioEmitterPanel.cs @@ -56,10 +56,8 @@ namespace CodeWalker.Project.Panels Hash1TextBox.Text = string.Empty; Hash2TextBox.Text = string.Empty; Unk01TextBox.Text = string.Empty; - Unk02UpDown.Value = 0; - Unk03UpDown.Value = 0; - Unk04UpDown.Value = 0; - Unk05UpDown.Value = 0; + StartTimeUpDown.Value = 0; + EndTimeUpDown.Value = 0; Unk06UpDown.Value = 0; Unk07UpDown.Value = 0; Unk08UpDown.Value = 0; @@ -91,10 +89,8 @@ namespace CodeWalker.Project.Panels Hash1TextBox.Text = e.Hash1.ToString(); Hash2TextBox.Text = e.Hash2.ToString(); Unk01TextBox.Text = FloatUtil.ToString(e.Unk01); - Unk02UpDown.Value = e.Unk02.Value; - Unk03UpDown.Value = e.Unk03.Value; - Unk04UpDown.Value = e.Unk04.Value; - Unk05UpDown.Value = e.Unk05.Value; + StartTimeUpDown.Value = e.StartTime.Value; + EndTimeUpDown.Value = e.EndTime.Value; Unk06UpDown.Value = e.Unk06.Value; Unk07UpDown.Value = e.Unk07.Value; Unk08UpDown.Value = e.Unk08.Value; @@ -279,57 +275,29 @@ namespace CodeWalker.Project.Panels } } - private void Unk02UpDown_ValueChanged(object sender, EventArgs e) + private void StartTimeUpDown_ValueChanged(object sender, EventArgs e) { if (populatingui) return; if (CurrentEmitter?.AudioEmitter == null) return; - byte unk = (byte)Unk02UpDown.Value; - if (CurrentEmitter.AudioEmitter.Unk02.Value != unk) + ushort unk = (ushort)StartTimeUpDown.Value; + if (CurrentEmitter.AudioEmitter.StartTime.Value != unk) { - CurrentEmitter.AudioEmitter.Unk02 = unk; + CurrentEmitter.AudioEmitter.StartTime = unk; ProjectItemChanged(); } } - private void Unk03UpDown_ValueChanged(object sender, EventArgs e) + private void EndTimeUpDown_ValueChanged(object sender, EventArgs e) { if (populatingui) return; if (CurrentEmitter?.AudioEmitter == null) return; - byte unk = (byte)Unk03UpDown.Value; - if (CurrentEmitter.AudioEmitter.Unk03.Value != unk) + ushort unk = (ushort)EndTimeUpDown.Value; + if (CurrentEmitter.AudioEmitter.EndTime.Value != unk) { - CurrentEmitter.AudioEmitter.Unk03 = unk; - - ProjectItemChanged(); - } - } - - private void Unk04UpDown_ValueChanged(object sender, EventArgs e) - { - if (populatingui) return; - if (CurrentEmitter?.AudioEmitter == null) return; - - byte unk = (byte)Unk04UpDown.Value; - if (CurrentEmitter.AudioEmitter.Unk04.Value != unk) - { - CurrentEmitter.AudioEmitter.Unk04 = unk; - - ProjectItemChanged(); - } - } - - private void Unk05UpDown_ValueChanged(object sender, EventArgs e) - { - if (populatingui) return; - if (CurrentEmitter?.AudioEmitter == null) return; - - byte unk = (byte)Unk05UpDown.Value; - if (CurrentEmitter.AudioEmitter.Unk05.Value != unk) - { - CurrentEmitter.AudioEmitter.Unk05 = unk; + CurrentEmitter.AudioEmitter.EndTime = unk; ProjectItemChanged(); } diff --git a/CodeWalker/Project/ProjectForm.cs b/CodeWalker/Project/ProjectForm.cs index d2c108d..67cbc2f 100644 --- a/CodeWalker/Project/ProjectForm.cs +++ b/CodeWalker/Project/ProjectForm.cs @@ -6553,10 +6553,8 @@ namespace CodeWalker.Project emitter.InnerRad = cp ? copy.AudioEmitter.InnerRad : 0.0f; emitter.OuterRad = cp ? copy.AudioEmitter.OuterRad : 20.0f; emitter.Unk01 = cp ? copy.AudioEmitter.Unk01 : 1.0f; - emitter.Unk02 = cp ? copy.AudioEmitter.Unk02.Value : (byte)0; - emitter.Unk03 = cp ? copy.AudioEmitter.Unk03.Value : (byte)0; - emitter.Unk04 = cp ? copy.AudioEmitter.Unk04.Value : (byte)160; - emitter.Unk05 = cp ? copy.AudioEmitter.Unk05.Value : (byte)5; + emitter.StartTime = cp ? copy.AudioEmitter.StartTime.Value : (ushort)0; + emitter.EndTime = cp ? copy.AudioEmitter.EndTime.Value : (ushort)1440; emitter.Unk06 = cp ? copy.AudioEmitter.Unk06.Value : (ushort)0; emitter.Unk07 = cp ? copy.AudioEmitter.Unk07.Value : (ushort)0; emitter.Unk08 = cp ? copy.AudioEmitter.Unk08.Value : (byte)0;