Exemple #1
0
        private void RepairCss()
        {
            if (enCssFile.Cues.Count == jpnCssFile.Cues.Count)
            {
                return;
            }

            ACB_File main   = (enCssFile.Cues.Count > jpnCssFile.Cues.Count) ? enCssFile : jpnCssFile;
            ACB_File second = (enCssFile.Cues.Count > jpnCssFile.Cues.Count) ? jpnCssFile : enCssFile;

            while (main.Cues.Count > second.Cues.Count)
            {
                if (main.Cues.Count <= second.Cues.Count)
                {
                    break;
                }
                int     newCueId  = second.GetFreeCueId();
                ACB_Cue cueToCopy = main.GetCue(newCueId);

                if (cueToCopy != null)
                {
                    second.CopyCue(newCueId, main);
                }
                else
                {
                    break;
                }
            }
        }
Exemple #2
0
        private int AssignCommonCssCueId(out bool reusing)
        {
            //For whatever reason XV2INS wants to overwrite tracks that are replaced, so best to always add new cues.
            ACB_Cue enFreeCue  = enCssFile.GetCue("X2_FREE");
            ACB_Cue jpnFreeCue = jpnCssFile.GetCue("X2_FREE");

            int enCueId;
            int jpnCueId;

            if (enFreeCue != null && jpnFreeCue != null)
            {
                if (enFreeCue.ID == jpnFreeCue.ID)
                {
                    enCueId  = (int)enFreeCue.ID;
                    jpnCueId = (int)enFreeCue.ID;
                    reusing  = true;
                }
                else
                {
                    enCueId  = enCssFile.GetFreeCueId();
                    jpnCueId = jpnCssFile.GetFreeCueId();
                    reusing  = false;
                }
            }
            else
            {
                enCueId  = enCssFile.GetFreeCueId();
                jpnCueId = jpnCssFile.GetFreeCueId();
                reusing  = false;
            }

            //int enCueId = enCssFile.GetFreeCueId();
            //int jpnCueId = jpnCssFile.GetFreeCueId();

            //Repair CSS ACB if out of sync
            if (enCueId != jpnCueId)
            {
                RepairCss();
                enCueId = enCssFile.GetFreeCueId();
            }

            //reusing = false;

            return(enCueId);
        }