Ejemplo n.º 1
0
        public static void Save(ICLIFlags flags, string directory, DataModels.Unlock unlock, VoiceSet voiceSet)
        {
            if (voiceSet == null)
            {
                return;
            }

            if (!(unlock.STU is STUUnlock_VoiceLine vl))
            {
                return;
            }

            HashSet <ulong> voiceLines = new HashSet <ulong>();

            using (Stream vlStream = IO.OpenFile(vl.m_F57B051E)) {
                teChunkedData chunkedData = new teChunkedData(vlStream);

                foreach (teEffectComponentVoiceStimulus voiceStimulus in chunkedData.GetChunks <teEffectComponentVoiceStimulus>())
                {
                    if (voiceSet.Stimuli.TryGetValue(voiceStimulus.Header.VoiceStimulus, out var stimuliLines))
                    {
                        foreach (var voiceLine in stimuliLines)
                        {
                            voiceLines.Add(voiceLine);
                        }
                    }
                }
            }

            SaveVoiceLines(flags, voiceLines, voiceSet, directory);
        }
Ejemplo n.º 2
0
        public static void Save(ICLIFlags flags, string directory, DataModels.Unlock unlock)
        {
            FindLogic.Combo.ComboInfo info = new FindLogic.Combo.ComboInfo();
            FindLogic.Combo.Find(info, unlock.GUID);

            bool saveAllTextures = false;

            try {
                info.m_textures.First(x => x.Value.m_loose).Value.m_name = unlock.Name;
                directory = Path.GetFullPath(Path.Combine(directory, ".."));
            } catch {
                // animated spray - no main image

                saveAllTextures = true;
            }

            var context = new Combo.SaveContext(info);

            Combo.SaveLooseTextures(flags, directory, context);
            if (!saveAllTextures)
            {
                context.Wait();
                return;
            }

            Combo.SaveAllMaterials(flags, directory, context);
            Combo.Save(flags, directory, context);
            context.Wait();
        }
Ejemplo n.º 3
0
        public static void Save(ICLIFlags flags, string directory, DataModels.Unlock unlock)
        {
            STUUnlock_PortraitFrame portraitFrame = (STUUnlock_PortraitFrame)unlock.STU;

            string tier = portraitFrame.m_rank.ToString();

            FindLogic.Combo.ComboInfo info = new FindLogic.Combo.ComboInfo();

            if (portraitFrame.m_rankTexture != null)
            {
                FindLogic.Combo.Find(info, portraitFrame.m_rankTexture);
                info.SetTextureName(portraitFrame.m_rankTexture, $"Star - {portraitFrame.m_stars}");
            }

            if (portraitFrame.m_949D9C2A != null)
            {
                FindLogic.Combo.Find(info, portraitFrame.m_949D9C2A);
                int borderNum = portraitFrame.m_level - portraitFrame.m_stars * 10 - (int)portraitFrame.m_rank * 10;

                if ((int)portraitFrame.m_rank > 1)
                {
                    borderNum -= 50 * ((int)portraitFrame.m_rank - 1);
                }
                borderNum -= 1;

                info.SetTextureName(portraitFrame.m_949D9C2A, $"Border - {borderNum}");
            }

            Combo.SaveLooseTextures(flags, Path.Combine(directory, tier), info);
        }
Ejemplo n.º 4
0
        public static void Save(ICLIFlags flags, string directory, DataModels.Unlock unlock)
        {
            FindLogic.Combo.ComboInfo info = new FindLogic.Combo.ComboInfo();
            FindLogic.Combo.Find(info, unlock.GUID);

            // hmm, resaving the default spray over and over again (ref'd by SSCE) is kinda bad.

            try {
                info.Textures.First(x => x.Value.Loose).Value.Name = unlock.Name;
            } catch {
                // what
            }

            ExtractFlags extractFlags = flags as ExtractFlags;

            if (extractFlags?.SprayOnlyImage == true)
            {
                directory = Path.GetFullPath(Path.Combine(directory, ".."));
            }

            Combo.SaveLooseTextures(flags, directory, info);
            if (extractFlags?.SprayOnlyImage == true)
            {
                return;
            }
            Combo.SaveAllMaterials(flags, directory, info);
            Combo.Save(flags, directory, info);
        }
Ejemplo n.º 5
0
        public static void Save(ICLIFlags flags, string directory, DataModels.Unlock unlock)
        {
            FindLogic.Combo.ComboInfo info = new FindLogic.Combo.ComboInfo();
            FindLogic.Combo.Find(info, unlock.GUID);

            info.SaveConfig.SaveAnimationEffects = false;  // todo: unsupported here due to relative paths used by OWEffect

            Combo.Save(flags, directory, info);
            Combo.SaveAllAnimations(flags, directory, info);
        }
Ejemplo n.º 6
0
        public static void Save(ICLIFlags flags, string directory, DataModels.Unlock unlock)
        {
            FindLogic.Combo.ComboInfo info = new FindLogic.Combo.ComboInfo();
            FindLogic.Combo.Find(info, unlock.GUID);

            // hmm, resaving the default spray over and over again (ref'd by SSCE) is kinda bad.

            Combo.SaveLooseTextures(flags, directory, info);
            Combo.SaveAllMaterials(flags, directory, info);
            Combo.Save(flags, directory, info);
        }
Ejemplo n.º 7
0
        public static void Save(ICLIFlags flags, string directory, DataModels.Unlock unlock)
        {
            FindLogic.Combo.ComboInfo info = new FindLogic.Combo.ComboInfo();
            FindLogic.Combo.Find(info, unlock.GUID);

            var context = new Combo.SaveContext(info)
            {
                m_saveAnimationEffects = false // todo: unsupported here due to relative paths used by OWEffect
            };

            Combo.Save(flags, directory, context);
            Combo.SaveAllAnimations(flags, directory, context);
            context.Wait();
        }
Ejemplo n.º 8
0
        public static void Save(ICLIFlags flags, string directory, DataModels.Unlock unlock, STUHero hero)
        {
            if (!(unlock.STU is STUUnlock_SkinTheme unlockSkinTheme))
            {
                return;
            }
            STUSkinTheme skinTheme = GetInstance <STUSkinTheme>(unlockSkinTheme.m_skinTheme);

            if (skinTheme == null)
            {
                return;
            }

            LoudLog($"\tExtracting skin {unlock.Name}");
            Save(flags, directory, skinTheme, hero);
        }