private static void InitializeCharNames() { CharacterNames = new Dictionary <ulong, script_character>(); string tempStr = UnityWrapper.LoadTextFileAsString("March22/CHARACTER_NAMES"); tempStr += "\n\n"; // <- hack to fix last line being cut off string[] lines = tempStr.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries); foreach (string line in lines) { string[] lineSplit = line.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries); string shortName = lineSplit[0]; string longName = Regex.Match(line, "\"([^\"]*)\"").ToString(); script_character temp = new script_character(); temp.name = longName.Substring(1, longName.Length - 2); temp.color = new UnityWrapper.Color32( (byte)Int32.Parse(lineSplit[lineSplit.Length - 3]), (byte)Int32.Parse(lineSplit[lineSplit.Length - 2]), (byte)Int32.Parse(lineSplit[lineSplit.Length - 1]), (byte)255 ); CharacterNames.Add(CalculateHash(shortName), temp); } }
static public LoadedVariables LoadVariablesFile() { var result = new LoadedVariables(); var file = UnityWrapper.LoadTextFileAsString("March22/VARIABLES"); if (file == null || file == "") { UnityWrapper.LogError("Failed to load \"Resources/March22/VARIABLES.txt\"! You should have one even if you aren't using it!"); return(result); } if (file[file.Length - 1] != '\n') { file += '\n'; } var varLines = SplitByChar('\n', ref file); file = ""; result.variables = new string[varLines.Count]; result.variableData = new string[varLines.Count]; for (int i = 0; i < varLines.Count; i++) { var currentLine = varLines[i]; currentLine = currentLine.Trim(' ', '\n', '\r'); if (currentLine.Length < 4) { continue; } List <string> splitStr = new List <string>(); SplitString(ref currentLine, ref splitStr, "==="); for (int n = 0; n < splitStr.Count; n++) { splitStr[n] = splitStr[n].Trim(' ', '\n', '\r'); } if (splitStr.Count < 2) { continue; } result.variables[i] = splitStr[0]; result.variableData[i] = splitStr[1]; } return(result); }
static public M22.Script.Script CompileScript(string filename) { var result = new M22.Script.Script(); LoadedVariables loadedVars = LoadVariablesFile(); //var file = File.ReadAllText(filename, Encoding.UTF8); var file = UnityWrapper.LoadTextFileAsString(filename); if (file.Length == 0) { UnityWrapper.LogError("Failed to load script file: " + filename); return(result); } var scriptLines = SplitByChar('\n', ref file); file = ""; //List<string> CURRENT_LINE_SPLIT = new List<string>(); int scriptPos = 0; for (int i = 0; i < scriptLines.Count; i++) { string currScriptLine = scriptLines[i]; for (int n = 0; n < loadedVars.variables.Length; n++) { if (loadedVars.variables[n] != null) { string tempStr = "[[" + loadedVars.variables[n] + "]]"; currScriptLine = currScriptLine.Replace(tempStr, loadedVars.variableData[n]); } } M22.line_c tempLine_c = CompileLine(ref currScriptLine, i); // ref can't be an index so have to copy then copy back scriptLines[i] = currScriptLine; //if(tempLine_c.m_lineType == LINETYPE.NULL_OPERATOR) result.AddLine(tempLine_c); scriptPos++; } result.ClearNullOperators(); return(result); }