private RhsFile ConvertRhs(RhGuid oggGuid, RhGuid pngGuid)
        {
            var rhsConverter = new RhsConverter();
            var rhsFile      = rhsConverter.Convert(smFile, oggGuid, pngGuid, songOffset);
            var rhsPath      = Path.Combine(rhDir, rhsFile.rhsGuid.ToString()) + ".rhs";

            rhsFile.SerializeToFile(rhsPath);

            return(rhsFile);
        }
        private RhGuid ConvertOgg()
        {
            var oggGuid       = RhGuid.NewGuid();
            var sourceOggPath = Path.Combine(smSongDir, smFile.music);
            var destOggPath   = Path.Combine(rhDir, oggGuid.ToString()) + ".ogg";

            File.Copy(sourceOggPath, destOggPath);

            return(oggGuid);
        }
Пример #3
0
        private RhgFile ConvertRhg(RhGuid pngGuid, IEnumerable <RhGuid> rhcGuids)
        {
            var rhgConverter = new RhgConverter();
            var rhgFile      = rhgConverter.Convert(pngGuid, packName, rhcGuids);
            var rhgPath      = Path.Combine(rhDir, rhgFile.rhgGuid.ToString()) + ".rhg";

            rhgFile.SerializeToFile(rhgPath);

            return(rhgFile);
        }
        private RhGuid ConvertPng()
        {
            var sourcePngPath = Path.Combine(smSongDir, smFile.background);

            var pngGuid     = RhGuid.NewGuid();
            var destPngPath = Path.Combine(rhDir, pngGuid.ToString()) + ".png";

            File.Copy(sourcePngPath, destPngPath);

            return(pngGuid);
        }
Пример #5
0
        public List <RhcFile> Convert(SmFile smFile, RhGuid rhsGuid, string artist)
        {
            var rhcFiles = new List <RhcFile>();

            foreach (var chart in smFile.charts)
            {
                rhcFiles.Add(ConvertRhcFile(chart, rhsGuid, artist));
            }

            return(rhcFiles);
        }
Пример #6
0
        private void SaveRandomizedRhc(string rhDir)
        {
            rhcFile.chartName = "Randomizer";

            var newGuid = RhGuid.NewGuid();

            rhcFile.rhcGuid = newGuid;
            var newPath = Path.ChangeExtension(Path.Combine(rhDir, newGuid.ToString()), ".rhc");

            rhcFile.SerializeToFile(newPath);
        }
        private List <RhcFile> ConvertRhc(RhGuid rhsGuid)
        {
            var rhcConverter = new RhcConverter();
            var rhcFiles     = rhcConverter.Convert(smFile, rhsGuid, smFile.credit);

            foreach (var rhcFile in rhcFiles)
            {
                var rhcPath = Path.Combine(rhDir, rhcFile.rhcGuid.ToString()) + ".rhc";
                rhcFile.SerializeToFile(rhcPath);
            }

            return(rhcFiles);
        }
Пример #8
0
        private RhcFile ConvertRhcFile(Chart chart, RhGuid rhsGuid, string artist)
        {
            var rhcFile = new RhcFile();

            rhcFile.rhcGuid      = RhGuid.NewGuid();
            rhcFile.internalGuid = new RhGuid();
            rhcFile.rhsGuid      = rhsGuid;
            rhcFile.chartName    = chart.difficulty;
            rhcFile.unknown1     = 0;         // Fake value
            rhcFile.artists.Add(new Artist(artist, ArtistType.Artist));
            rhcFile.layers = new LayersConverter().Convert(chart);

            return(rhcFile);
        }
Пример #9
0
        public RhgFile Convert(RhGuid pngGuid, string packName, IEnumerable <RhGuid> rhcGuids)
        {
            var rhgFile = new RhgFile();

            rhgFile.rhgGuid      = RhGuid.NewGuid();
            rhgFile.internalGuid = new RhGuid();
            rhgFile.pngGuid      = pngGuid;
            rhgFile.packName     = packName;
            foreach (var rhcFile in rhcGuids)
            {
                rhgFile.rhcGuids.Add(rhcFile);
            }

            return(rhgFile);
        }
Пример #10
0
        private RhGuid ConvertPng()
        {
            var sourcePngPath = Directory.GetFiles(smPackDir, "*.png").FirstOrDefault();

            if (sourcePngPath == null)
            {
                return(new RhGuid());
            }

            var pngGuid     = RhGuid.NewGuid();
            var destPngPath = Path.Combine(rhDir, pngGuid.ToString()) + ".png";

            File.Copy(sourcePngPath, destPngPath);

            return(pngGuid);
        }
Пример #11
0
        public RhsFile Convert(SmFile smFile, RhGuid oggGuid, RhGuid pngGuid, float songOffset)
        {
            var rhsFile = new RhsFile();

            rhsFile.rhsGuid            = RhGuid.NewGuid();
            rhsFile.internalGuid       = new RhGuid();
            rhsFile.oggGuid            = oggGuid;
            rhsFile.songTitle          = smFile.title;
            rhsFile.timingData         = new TimingDataConverter().Convert(smFile, songOffset);
            rhsFile.previewStart       = smFile.sampleStart;
            rhsFile.previewLength      = smFile.sampleLength;
            rhsFile.songLengthOverride = -1f;             // TODO: Consider using the beat of the last note (+ some padding)
            rhsFile.pngGuid            = pngGuid;
            rhsFile.artists.Add(new Artist(smFile.artist, ArtistType.Artist));

            return(rhsFile);
        }
Пример #12
0
        public void EditTimingData()
        {
            var rhsPath = Path.Combine(rhPath, "0174eed2-8658-4b48-87e4-7e5f0753b79d.rhs");
            var rhsFile = IBinarySerializableExtensions.Deserialize(rhsPath, RhsFile.Deserialize);

            rhsFile.internalGuid = new RhGuid();
            rhsFile.timingData.offsetMultiplier = 0;
            //rhsFile.timingData.entries[0].startBpm /= 2;
            //rhsFile.pngGuid = new RhGuid(new byte[] { 38, 202, 1, 86, 253, 228, 71, 86, 152, 232, 0, 213, 9, 179, 44, 201 });
            rhsFile.SerializeToFile(rhsPath);

            var cachePath = Path.Combine(rhPath, "cache");
            var rhsGuid   = new RhGuid(new byte[] { 0x01, 0x74, 0xee, 0xd2, 0x86, 0x58, 0x4b, 0x48, 0x87, 0xe4, 0x7e, 0x5f, 0x07, 0x53, 0xb7, 0x9d });
            var cacheFile = IBinarySerializableExtensions.Deserialize(cachePath, CacheFile.Deserialize);

            var rhsSynchronizer = new RhsSynchronizer(cacheFile, rhsFile);

            rhsSynchronizer.Sync();

            cacheFile.SerializeToFile(cachePath);
        }
Пример #13
0
 public static void Write(this BinaryWriter writer, RhGuid guid)
 {
     writer.Write(guid.guid);
 }