public unsafe static bool process(Settings settings, int languageIndex) { TranslationStructure es = new TranslationStructure(); es.action = (byte)1; es.inputFilePath = toByteArray(settings.inpuPath, Settings.defaultEncoding); es.outputFilePath = toByteArray(settings.outputPath, Settings.defaultEncoding); es.useCondition = settings.useCondition; es.repack = (byte)(settings.repack ? 1 : 0); int len = 0; es.stringData = toByteArray(settings.lastKnownMapping, settings.strings[languageIndex], &len, settings.encodings[languageIndex]); es.stringDataLength = len; run(&es); killByteArray(es.inputFilePath); killByteArray(es.outputFilePath); killByteArray(es.stringData); settings.result = es.result; settings.repack = es.repack == 1; return(es.result == 0); }
public static unsafe MapString[] getStrings(String filePath, String encoding) { TranslationStructure es = new TranslationStructure(); es.action = (byte)2; es.outputFilePath = (byte *)0; es.inputFilePath = toByteArray(filePath, Settings.defaultEncoding); try { run(&es); // Run extraction killByteArray(es.inputFilePath); UnsafeReadBuffer rb = new UnsafeReadBuffer(es.stringData); int totalStrings = rb.readInt(); MapString[] result = new MapString[totalStrings]; for (int i = 0; i < totalStrings; i++) { result[i] = readMapString(rb, encoding); } // Sort by index bool changed = true; while (changed) { changed = false; for (int i = 1; i < result.Length; i++) { MapString p0 = result[i - 1]; MapString p1 = result[i]; if (p0.mapIndex > p1.mapIndex) { changed = true; result[i - 1] = p1; result[i] = p0; } } } for (int i = 0; i < result.Length; i++) { //result[i].storageIndex = i; } es.action = (byte)3; run(&es); // Free the array data string return(result); } catch (Exception) { } return(null); }
public unsafe static bool checkUsedCondition(Settings settings) { TranslationStructure es = new TranslationStructure(); es.action = (byte)5; es.inputFilePath = toByteArray(settings.inpuPath, Settings.defaultEncoding); es.useCondition = settings.useCondition; run(&es); killByteArray(es.inputFilePath); settings.result = es.result; if (es.result != 0) // Error { return(false); } return(es.useCondition == 0); }
public unsafe static SupportType getSupportType(Settings settings) { TranslationStructure es = new TranslationStructure(); es.action = (byte)4; es.inputFilePath = toByteArray(settings.inpuPath, Settings.defaultEncoding); es.useCondition = settings.useCondition; run(&es); killByteArray(es.inputFilePath); settings.result = es.result; if (es.result != 0) // Error { return(SupportType.Unsupported); } return((SupportType)es.useCondition); }