Example #1
0
        public void removeUnusedTricks()
        {
            foreach (KeyValuePair <string, string> kvp in trickFiles)
            {
                string file = @"c:\game\data\" + kvp.Key;

                checkoutTrickFile(file);

                System.IO.FileInfo fi = new System.IO.FileInfo(file);

                bool ro = fi.Exists && fi.IsReadOnly;

                if (!ro)
                {
                    string line = kvp.Value;

                    string[] split = line.Trim().Split(',');

                    ArrayList fData = new ArrayList();

                    common.COH_IO.fillList(fData, file);

                    ArrayList mats      = MatParser.parse(file, ref fData);
                    ArrayList objTricks = objectTrick.ObjectTrickParser.parse(file, ref fData);
                    ArrayList tTricks   = textureTrick.TextureTrickParser.parse(file, ref fData);

                    foreach (string s in split)
                    {
                        int cnt = 0;
                        cnt += removeMat(s, ref mats);
                        //cnt += removeOtrick(s, ref objTricks);
                        cnt += removeTTrick(s, ref tTricks);
                        if (cnt == 0 || cnt > 1)
                        {
                            tricks.Add(string.Format("{0} was found {1} times in {2}", s, cnt, file));
                        }
                    }

                    ArrayList trickData = getTrickData(mats, objTricks, tTricks);

                    common.COH_IO.writeDistFile(trickData, file);

                    fi = new System.IO.FileInfo(file);

                    if (fi.Length == 0)
                    {
                        zeroFiles.Add(file);
                        assetsMangement.CohAssetMang.undoCheckout(file);
                        assetsMangement.CohAssetMang.delete(file);
                        fi.Delete();
                    }


                    fData.Clear();
                }
            }
            common.COH_IO.writeDistFile(lockedFiles, @"c:\test\lockedTrickFile.txt");

            common.COH_IO.writeDistFile(tricks, @"c:\test\failedTricks.txt");

            common.COH_IO.writeDistFile(zeroFiles, @"c:\test\zeroSizeFiles.txt");
        }
Example #2
0
        public static ArrayList parse(string fileName, ref ArrayList fileContent)
        {
            ArrayList matTricks = new ArrayList();

            materialTrick.MatTrick mt;
            ArrayList matData = null;

            int    matStartIndex = -1, matEndIndex = -1;
            string matName = "";

            bool isMatTrick     = false;
            bool createMatTrick = false;
            int  endCount       = 0;
            int  maxEndCount    = 0;
            int  i = 0;

            foreach (object obj in fileContent)
            {
                System.Windows.Forms.Application.DoEvents();

                string line = (string)obj;
                line = common.COH_IO.removeExtraSpaceBetweenWords(((string)obj).Replace("\t", " ")).Trim();

                if (line.ToLower().StartsWith("Texture".ToLower()))
                {
                    isMatTrick = MatParser.isMatTrick(fileContent, i);
                    //commented below as 6/28/11
                    //isMatTrick = true;
                    if (isMatTrick)
                    {
                        matName = line.Replace("//", "#").Replace("Texture ", "").Replace("texture ", "").Split('#')[0];

                        matStartIndex  = i;
                        createMatTrick = false;
                        matData        = new ArrayList();
                    }
                }

                if (isMatTrick)
                {
                    string dataObj = (string)obj;

                    if (dataObj.ToLower().Contains("Texture_Name".ToLower()))
                    {
                        dataObj = common.COH_IO.fixInnerCamelCase((string)obj, "Texture_Name").Replace("Texture_Name.tga", "none").Replace("Texture_Name", "none");
                    }

                    matData.Add(dataObj);

                    if (line.ToLower().StartsWith("Fallback".ToLower()))
                    {
                        maxEndCount = 1;
                    }

                    if (line.ToLower().StartsWith("End".ToLower()))
                    {
                        endCount++;
                    }

                    if (endCount > maxEndCount || i == (fileContent.Count - 1))
                    {
                        isMatTrick     = false;
                        matEndIndex    = i;
                        createMatTrick = true;
                    }
                    if (createMatTrick)
                    {
                        mt = new COH_CostumeUpdater.assetEditor.materialTrick.MatTrick(matStartIndex,
                                                                                       matEndIndex, matData, fileName, matName);

                        matTricks.Add(mt);
                        endCount    = 0;
                        maxEndCount = 0;
                    }
                }
                i++;
            }

            return(matTricks);
        }