private static void FlagForRemoval(AkWwiseProjectData.AkBaseInformation info, WwiseObjectType type) { if (!_WwiseObjectsToRemove.ContainsKey(type)) { _WwiseObjectsToRemove[type] = new System.Collections.Generic.List <AkWwiseProjectData.AkBaseInformation>(); } _WwiseObjectsToRemove[type].Add(info); }
private static void FlagForInsertion(AkWwiseProjectData.AkBaseInformation info, WwiseObjectType type) { if (!_WwiseObjectsToAdd.ContainsKey(type)) { _WwiseObjectsToAdd[type] = new System.Collections.Generic.List <AkWwiseProjectData.AkBaseInformation>(); } _WwiseObjectsToAdd[type].Add(info); if (!AkUtilities.IsMigrating) { WwiseObjectReference.UpdateWwiseObject(type, info.Name, info.Guid); } }
private static void AddElementToList(string in_currentPathInProj, System.Xml.XmlReader in_reader, AssetType in_type, System.Collections.Generic.LinkedList <AkWwiseProjectData.PathElement> in_pathAndIcons, int in_wwuIndex, WwiseObjectType in_LeafType = WwiseObjectType.None) { switch (in_type.Type) { case WwiseObjectType.Folder: case WwiseObjectType.Bus: case WwiseObjectType.AuxBus: case WwiseObjectType.Event: case WwiseObjectType.Soundbank: case WwiseObjectType.GameParameter: case WwiseObjectType.Trigger: case WwiseObjectType.AcousticTexture: { var LeafType = in_LeafType == WwiseObjectType.None ? in_type.Type : in_LeafType; var name = in_reader.GetAttribute("Name"); var valueToAdd = in_type.Type == WwiseObjectType.Event ? new AkWwiseProjectData.Event() : new AkWwiseProjectData.AkInformation(); valueToAdd.Name = name; valueToAdd.Guid = new System.Guid(in_reader.GetAttribute("ID")); valueToAdd.PathAndIcons = new System.Collections.Generic.List <AkWwiseProjectData.PathElement>(in_pathAndIcons); FlagForInsertion(valueToAdd, in_type.Type); switch (LeafType) { case WwiseObjectType.AuxBus: case WwiseObjectType.Bus: case WwiseObjectType.Folder: valueToAdd.Path = in_currentPathInProj; break; default: valueToAdd.Path = System.IO.Path.Combine(in_currentPathInProj, name); valueToAdd.PathAndIcons.Add(new AkWwiseProjectData.PathElement(name, in_type.Type)); break; } switch (in_type.Type) { case WwiseObjectType.AuxBus: AkWwiseProjectInfo.GetData().AuxBusWwu[in_wwuIndex].List.Add(valueToAdd); break; case WwiseObjectType.Event: AkWwiseProjectInfo.GetData().EventWwu[in_wwuIndex].List.Add(valueToAdd as AkWwiseProjectData.Event); break; case WwiseObjectType.Soundbank: AkWwiseProjectInfo.GetData().BankWwu[in_wwuIndex].List.Add(valueToAdd); break; case WwiseObjectType.GameParameter: AkWwiseProjectInfo.GetData().RtpcWwu[in_wwuIndex].List.Add(valueToAdd); break; case WwiseObjectType.Trigger: AkWwiseProjectInfo.GetData().TriggerWwu[in_wwuIndex].List.Add(valueToAdd); break; case WwiseObjectType.AcousticTexture: AkWwiseProjectInfo.GetData().AcousticTextureWwu[in_wwuIndex].List.Add(valueToAdd); break; } } in_reader.Read(); break; case WwiseObjectType.StateGroup: case WwiseObjectType.SwitchGroup: { var valueToAdd = new AkWwiseProjectData.GroupValue(); if (in_LeafType == WwiseObjectType.Folder) { valueToAdd.Name = in_reader.GetAttribute("Name"); valueToAdd.Guid = new System.Guid(in_reader.GetAttribute("ID")); valueToAdd.PathAndIcons = new System.Collections.Generic.List <AkWwiseProjectData.PathElement>(in_pathAndIcons); valueToAdd.Path = in_currentPathInProj; FlagForInsertion(valueToAdd, in_type.Type); in_reader.Read(); } else { var XmlElement = System.Xml.Linq.XNode.ReadFrom(in_reader) as System.Xml.Linq.XElement; var ChildrenList = System.Xml.Linq.XName.Get("ChildrenList"); var ChildrenElement = XmlElement.Element(ChildrenList); if (ChildrenElement != null) { var name = XmlElement.Attribute("Name").Value; valueToAdd.Name = name; valueToAdd.Guid = new System.Guid(XmlElement.Attribute("ID").Value); valueToAdd.Path = System.IO.Path.Combine(in_currentPathInProj, name); valueToAdd.PathAndIcons = new System.Collections.Generic.List <AkWwiseProjectData.PathElement>(in_pathAndIcons); valueToAdd.PathAndIcons.Add(new AkWwiseProjectData.PathElement(name, in_type.Type)); FlagForInsertion(valueToAdd, in_type.Type); var ChildElem = System.Xml.Linq.XName.Get(in_type.ChildElementName); foreach (var element in ChildrenElement.Elements(ChildElem)) { if (element.Name != in_type.ChildElementName) { continue; } var elementName = element.Attribute("Name").Value; var childValue = new AkWwiseProjectData.AkBaseInformation { Name = elementName, Guid = new System.Guid(element.Attribute("ID").Value), }; childValue.PathAndIcons.Add(new AkWwiseProjectData.PathElement(elementName, in_type.ChildType)); valueToAdd.values.Add(childValue); FlagForInsertion(childValue, in_type.ChildType); } } else { valueToAdd = null; } } if (valueToAdd != null) { switch (in_type.Type) { case WwiseObjectType.StateGroup: AkWwiseProjectInfo.GetData().StateWwu[in_wwuIndex].List.Add(valueToAdd); break; case WwiseObjectType.SwitchGroup: AkWwiseProjectInfo.GetData().SwitchWwu[in_wwuIndex].List.Add(valueToAdd); break; } } } break; default: UnityEngine.Debug.LogError("WwiseUnity: Unknown asset type in WWU parser"); break; } }