示例#1
0
        public void ConvertAll(MusicDefinition definition)
        {
            var module = File.ReadAllBytes(definition.Module.FromInputFolder());

            _writer.StartObject(ObjectType.Fast, "menuMusic");
            _writer.WriteBlob(module);
            _writer.EndObject();

            var samples = File.ReadAllBytes(definition.Samples.FromInputFolder());

            _writer.StartObject(ObjectType.Chip, "menuSamples");
            _writer.WriteBlob(samples);
            _writer.EndObject();
        }
示例#2
0
        public GameMusic()
        {
            m_tracks = new Dictionary <string, Music>();

            Asset <AssetList> assetListMusic = Engine.AssetManager.GetAsset <AssetList>("Audio/Music.lua");

            foreach (AssetDefinition assetDefMusic in assetListMusic.Content.Definitions)
            {
                AssetInstantiationResult musicDefinitionRes = AssetInstanciator.CreateInstance(assetDefMusic, typeof(MusicDefinition));
                MusicDefinition          musicDefinition    = (MusicDefinition)musicDefinitionRes.Instance;

                Music music = Music.Create(musicDefinition);
                m_tracks.Add(assetDefMusic.Name, music);
            }
        }
示例#3
0
        public async Task <bool> ValidateFileAsync(MusicDefinition md, Stream stream)
        {
            // Validate file header value
            var buffer = new byte[HEADER.Length];

            stream.Position = 0;
            await stream.ReadAsync(buffer, 0, HEADER.Length);

            var fileHeader = Encoding.ASCII.GetString(buffer);

            if (string.IsNullOrWhiteSpace(fileHeader))
            {
                return(false);
            }

            if (!fileHeader.Equals(HEADER, StringComparison.Ordinal))
            {
                return(false);
            }

            // Validate game number in 0x08 and 0x09 pos
            stream.Position = 0x08;
            var minor = stream.ReadByte();
            var major = stream.ReadByte();

            if (md.Product.PackInfo.MetaInfo?.ContainsKey("ZWAVID_08") != true ||
                md.Product.PackInfo.MetaInfo?.ContainsKey("ZWAVID_09") != true)
            {
                throw new TMRIException("Missing ZWAVID_08 or ZWAVID_09 values in PackInfo struct.");
            }

            var zwavid08 = ((JsonElement)md.Product.PackInfo.MetaInfo["ZWAVID_08"]).GetInt32();
            var zwavid09 = ((JsonElement)md.Product.PackInfo.MetaInfo["ZWAVID_09"]).GetInt32();

            if (minor != zwavid08 || major != zwavid09)
            {
                return(false);
            }

            return(true);
        }
示例#4
0
 public async Task <bool> ValidateFileAsync(MusicDefinition md, string file)
 {
     await using var fs = new FileStream(file, FileMode.Open);
     return(await ValidateFileAsync(md, fs));
 }