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"); }
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); }