예제 #1
0
 private void ExtractBodyEmptryNoPrompt(string type, Dictionary <int, AquaModelLibrary.CharacterMakingIndex.BODYObject> dict, int id)
 {
     if (id != -1)
     {
         if (dict.ContainsKey(id))
         {
             Directory.CreateDirectory(settingsPath + "CMXEntryDumps\\");
             string path = settingsPath + $"CMXEntryDumps\\{ type}_{id}_cmxConfig.txt";
             try
             {
                 File.WriteAllText(path, BODYStructHandler.ConvertToString(dict[id], type).ToString());
                 MessageBox.Show($"Wrote successfully to {path}.");
             }
             catch
             {
                 MessageBox.Show($"Unable to write {path}. Ensure you have all permissions to said directory.");
             }
         }
         else
         {
             MessageBox.Show("Please Input a valid id to extract.");
         }
     }
     else
     {
         MessageBox.Show("Please Input a valid id to extract.");
     }
 }
예제 #2
0
        public void ProcessEntry(ref string cmxType, ref int cmxId, List <string> cmxEntry)
        {
            byte[] entryRaw;
            switch (cmxType.ToLower())
            {
            case "base ":
            case "basewear ":
                var baseEntry = cmx.baseWearDict[cmxId];
                BODYStructHandler.PatchBody(cmx.baseWearDict[cmxId], cmxEntry);
                entryRaw = BODYStructHandler.GetBODYAsBytes(baseEntry);
                Array.Copy(entryRaw, 0, cmxRaw, baseEntry.originalOffset, entryRaw.Length);
                break;

            case "outer ":
            case "outerwear ":
                var ouEntry = cmx.outerDict[cmxId];
                BODYStructHandler.PatchBody(cmx.outerDict[cmxId], cmxEntry);
                entryRaw = BODYStructHandler.GetBODYAsBytes(ouEntry);
                Array.Copy(entryRaw, 0, cmxRaw, ouEntry.originalOffset, entryRaw.Length);
                break;

            case "carm ":
            case "castarm ":
                var carmEntry = cmx.carmDict[cmxId];
                BODYStructHandler.PatchBody(cmx.carmDict[cmxId], cmxEntry);
                entryRaw = BODYStructHandler.GetBODYAsBytes(carmEntry);
                Array.Copy(entryRaw, 0, cmxRaw, carmEntry.originalOffset, entryRaw.Length);
                break;

            case "cleg ":
            case "castleg ":
                var clegEntry = cmx.clegDict[cmxId];
                BODYStructHandler.PatchBody(cmx.clegDict[cmxId], cmxEntry);
                entryRaw = BODYStructHandler.GetBODYAsBytes(clegEntry);
                Array.Copy(entryRaw, 0, cmxRaw, clegEntry.originalOffset, entryRaw.Length);
                break;

            case "body ":
            case "costume ":
                var bodyEntry = cmx.costumeDict[cmxId];
                BODYStructHandler.PatchBody(cmx.costumeDict[cmxId], cmxEntry);
                entryRaw = BODYStructHandler.GetBODYAsBytes(bodyEntry);
                Array.Copy(entryRaw, 0, cmxRaw, bodyEntry.originalOffset, entryRaw.Length);
                break;

            default:
                break;
            }
            cmxType = null;
            cmxId   = -1;
        }