Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    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);
        }
    }
Esempio n. 3
0
    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;
        }
    }